- 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
The LongMegaMergeKernel merges sorted chunks into a column source, with a parallel long array of row 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 Any,KEY_INDICES extends Indices>
LongMegaMergeKernel<ATTR,KEY_INDICES> makeContext(ChunkType chunkType, SortingOrder order) Creates a SortKernel for the given chunkType.voidmerge(LongArraySource indexDestinationSource, WritableColumnSource<?> valuesDestinationSource, long destinationOffset, long destinationSize, LongChunk<KEY_INDICES> indexKeys, Chunk<ATTR> valuesToMerge)
-
Method Details
-
makeContext
static <ATTR extends Any,KEY_INDICES extends Indices> 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, WritableColumnSource<?> valuesDestinationSource, long destinationOffset, long destinationSize, LongChunk<KEY_INDICES> indexKeys, Chunk<ATTR> valuesToMerge)
-