Package com.illumon.iris.db.v2.sort
Interface LongMegaMergeKernel<ATTR extends Attributes.Any,KEY_INDICES extends Attributes.Keys>
- All Superinterfaces:
AutoCloseable,Context,SafeCloseable
- All Known Implementing Classes:
ByteLongMegaMergeDescendingKernel.ByteLongMegaMergeDescendingKernelContext,ByteLongMegaMergeKernel.ByteLongMegaMergeKernelContext,CharLongMegaMergeDescendingKernel.CharLongMegaMergeDescendingKernelContext,CharLongMegaMergeKernel.CharLongMegaMergeKernelContext,DoubleLongMegaMergeDescendingKernel.DoubleLongMegaMergeDescendingKernelContext,DoubleLongMegaMergeKernel.DoubleLongMegaMergeKernelContext,FloatLongMegaMergeDescendingKernel.FloatLongMegaMergeDescendingKernelContext,FloatLongMegaMergeKernel.FloatLongMegaMergeKernelContext,IntLongMegaMergeDescendingKernel.IntLongMegaMergeDescendingKernelContext,IntLongMegaMergeKernel.IntLongMegaMergeKernelContext,LongLongMegaMergeDescendingKernel.LongLongMegaMergeDescendingKernelContext,LongLongMegaMergeKernel.LongLongMegaMergeKernelContext,ObjectLongMegaMergeDescendingKernel.ObjectLongMegaMergeDescendingKernelContext,ObjectLongMegaMergeKernel.ObjectLongMegaMergeKernelContext,ShortLongMegaMergeDescendingKernel.ShortLongMegaMergeDescendingKernelContext,ShortLongMegaMergeKernel.ShortLongMegaMergeKernelContext
public interface LongMegaMergeKernel<ATTR extends Attributes.Any,KEY_INDICES extends Attributes.Keys>
extends Context
The LongMegaMergeKernel merges sorted chunks into a column source, with a parallel long array of Index keys.
The intention is that you will use a Timsort kernel to sort maximally sized chunks, then merge the result into a
ColumnSource using the MegaMergeKernel only if necessary.
-
Method Summary
Modifier and TypeMethodDescriptionstatic <ATTR extends Attributes.Any,KEY_INDICES extends Attributes.Keys>
LongMegaMergeKernel<ATTR,KEY_INDICES> makeContext(ChunkType chunkType, SortingOrder order) Creates a SortKernel for the given chunkType.voidmerge(LongArraySource indexDestinationSource, ArrayBackedColumnSource<?> valuesDestinationSource, long destinationOffset, long destinationSize, LongChunk<KEY_INDICES> indexKeys, Chunk<ATTR> valuesToMerge)
-
Method Details
-
makeContext
static <ATTR extends Attributes.Any,KEY_INDICES extends Attributes.Keys> LongMegaMergeKernel<ATTR,KEY_INDICES> makeContext(ChunkType chunkType, SortingOrder order) Creates a SortKernel for the given chunkType.- Parameters:
chunkType- the type of chunk we are sortingorder- whether we should sort in an ascending or descending direction- Returns:
- a SortKernel suitable for the given type, order, and size
-
merge
void merge(LongArraySource indexDestinationSource, ArrayBackedColumnSource<?> valuesDestinationSource, long destinationOffset, long destinationSize, LongChunk<KEY_INDICES> indexKeys, Chunk<ATTR> valuesToMerge)
-