Interface LongMegaMergeKernel<ATTR extends Any,KEY_INDICES extends Indices>

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 Any,KEY_INDICES extends Indices> extends Context
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 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 sorting
      order - 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)