Class ByteBlinkSortedFirstOrLastChunkedOperator

All Implemented Interfaces:
IterativeChunkedAggregationOperator

public class ByteBlinkSortedFirstOrLastChunkedOperator extends CopyingPermutedBlinkFirstOrLastChunkedOperator
Chunked aggregation operator for sorted first/last-by using a byte sort-column on blink tables.
  • Method Details

    • ensureCapacity

      public void ensureCapacity(long tableSize)
      Description copied from interface: IterativeChunkedAggregationOperator
      Ensure that this operator can handle destinations up to tableSize - 1.
      Specified by:
      ensureCapacity in interface IterativeChunkedAggregationOperator
      Overrides:
      ensureCapacity in class CopyingPermutedBlinkFirstOrLastChunkedOperator
      Parameters:
      tableSize - the new size of the table
    • resetForStep

      public void resetForStep(@NotNull @NotNull TableUpdate upstream, int startingDestinationsCount)
      Description copied from interface: IterativeChunkedAggregationOperator
      Reset any per-step internal state. Note that the arguments to this method should not be mutated in any way.
      Specified by:
      resetForStep in interface IterativeChunkedAggregationOperator
      Overrides:
      resetForStep in class BaseBlinkFirstOrLastChunkedOperator
      Parameters:
      upstream - The upstream ShiftAwareListener.Update
      startingDestinationsCount - The number of used destinations at the beginning of this step
    • addChunk

      public void addChunk(IterativeChunkedAggregationOperator.BucketedContext bucketedContext, @NotNull @NotNull Chunk<? extends Values> values, @NotNull @NotNull LongChunk<? extends RowKeys> inputRowKeys, @NotNull @NotNull IntChunk<RowKeys> destinations, @NotNull @NotNull IntChunk<ChunkPositions> startPositions, @NotNull @NotNull IntChunk<ChunkLengths> length, @NotNull @NotNull WritableBooleanChunk<Values> stateModified)
      Description copied from interface: IterativeChunkedAggregationOperator
      Aggregate a chunk of data into the result columns.
      Parameters:
      bucketedContext - the operator-specific context
      values - a chunk of values to aggregate
      inputRowKeys - the input row keys, in post-shift space
      destinations - the destinations in resultColumn to aggregate into, parallel with startPositions and length
      startPositions - the starting positions in the chunk for each destination
      length - the number of values in the chunk for each destination
      stateModified - a boolean output array, parallel to destinations, which is set to true if the corresponding destination has been modified
    • addChunk

      public boolean addChunk(IterativeChunkedAggregationOperator.SingletonContext singletonContext, int chunkSize, @NotNull @NotNull Chunk<? extends Values> values, @NotNull @NotNull LongChunk<? extends RowKeys> inputRowKeys, long destination)
      Description copied from interface: IterativeChunkedAggregationOperator
      Aggregate a chunk of data into the result columns.
      Parameters:
      singletonContext - the operator-specific context
      chunkSize - the size of the addition
      values - the values to aggregate
      inputRowKeys - the input row keys, in post-shift space
      destination - the destination in the result columns
      Returns:
      true if the state was modified, false otherwise
    • propagateInitialState

      public void propagateInitialState(@NotNull @NotNull QueryTable resultTable, int startingDestinationsCount)
      Description copied from interface: IterativeChunkedAggregationOperator
      Perform any internal state keeping needed for destinations that were added during initialization.
      Parameters:
      resultTable - The result QueryTable after initialization
      startingDestinationsCount - The number of used destinations at the beginning of this step
    • propagateUpdates

      public void propagateUpdates(@NotNull @NotNull TableUpdate downstream, @NotNull @NotNull RowSet newDestinations)
      Description copied from interface: IterativeChunkedAggregationOperator
      Perform any internal state keeping needed for destinations that were added (went from 0 keys to > 0), removed (went from > 0 keys to 0), or modified (keys added or removed, or keys modified) by this iteration. Note that the arguments to this method should not be mutated in any way.
      Parameters:
      downstream - The downstream TableUpdate (which does not have its ModifiedColumnSet finalized yet)
      newDestinations - New destinations added on this update
    • startRecording

      public final void startRecording(LongConsumer reincarnatedDestinationCallback, LongConsumer emptiedDestinationCallback)
    • finishRecording

      public final void finishRecording()