Class BlinkFirstChunkedOperator
java.lang.Object
io.deephaven.engine.table.impl.by.BaseBlinkFirstOrLastChunkedOperator
io.deephaven.engine.table.impl.by.BlinkFirstChunkedOperator
- All Implemented Interfaces:
IterativeChunkedAggregationOperator
A firstBy aggregation operator for blink tables.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.deephaven.engine.table.impl.by.IterativeChunkedAggregationOperator
IterativeChunkedAggregationOperator.BucketedContext, IterativeChunkedAggregationOperator.SingletonContext
-
Field Summary
Fields inherited from class io.deephaven.engine.table.impl.by.BaseBlinkFirstOrLastChunkedOperator
COPY_CHUNK_SIZE, inputColumns, numResultColumns, outputColumns, redirections
Fields inherited from interface io.deephaven.engine.table.impl.by.IterativeChunkedAggregationOperator
ZERO_LENGTH_ITERATIVE_CHUNKED_AGGREGATION_OPERATOR_ARRAY
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addChunk
(IterativeChunkedAggregationOperator.BucketedContext bucketedContext, Chunk<? extends Values> values, @NotNull LongChunk<? extends RowKeys> inputRowKeys, @NotNull IntChunk<RowKeys> destinations, @NotNull IntChunk<ChunkPositions> startPositions, IntChunk<ChunkLengths> length, @NotNull WritableBooleanChunk<Values> stateModified) Aggregate a chunk of data into the result columns.boolean
addChunk
(IterativeChunkedAggregationOperator.SingletonContext context, int chunkSize, Chunk<? extends Values> values, @NotNull LongChunk<? extends RowKeys> inputRowKeys, long destination) Aggregate a chunk of data into the result columns.boolean
addRowSet
(IterativeChunkedAggregationOperator.SingletonContext context, @NotNull RowSet rowSet, long destination) void
ensureCapacity
(long tableSize) Ensure that this operator can handle destinations up to tableSize - 1.final void
makeBucketedContext
(int size) Make aIterativeChunkedAggregationOperator.BucketedContext
suitable for this operator if necessary.void
propagateInitialState
(@NotNull QueryTable resultTable, int startingDestinationsCount) Perform any internal state keeping needed for destinations that were added during initialization.void
propagateUpdates
(@NotNull TableUpdate downstream, @NotNull RowSet newDestinations) 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.final void
startRecording
(LongConsumer reincarnatedDestinationCallback, LongConsumer emptiedDestinationCallback) final void
Called after initialization; when the operator's result columns must have previous tracking enabled.final boolean
Whether the operator can deal with an unchunked RowSet more efficiently than a chunked RowSet.Methods inherited from class io.deephaven.engine.table.impl.by.BaseBlinkFirstOrLastChunkedOperator
getResultColumns, modifyChunk, modifyChunk, modifyRowKeys, modifyRowKeys, removeChunk, removeChunk, requiresRowKeys, resetForStep, shiftChunk, shiftChunk
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.deephaven.engine.table.impl.by.IterativeChunkedAggregationOperator
initializeRefreshing, makeSingletonContext, propagateFailure, requiresRunFinds
-
Method Details
-
unchunkedRowSet
public final boolean unchunkedRowSet()Description copied from interface:IterativeChunkedAggregationOperator
Whether the operator can deal with an unchunked RowSet more efficiently than a chunked RowSet.- Returns:
- true if the operator can deal with unchunked RowSets, false otherwise
-
startTrackingPrevValues
public final void startTrackingPrevValues()Description copied from interface:IterativeChunkedAggregationOperator
Called after initialization; when the operator's result columns must have previous tracking enabled. -
ensureCapacity
public void ensureCapacity(long tableSize) Description copied from interface:IterativeChunkedAggregationOperator
Ensure that this operator can handle destinations up to tableSize - 1.- Parameters:
tableSize
- the new size of the table
-
addChunk
public void addChunk(IterativeChunkedAggregationOperator.BucketedContext bucketedContext, Chunk<? extends Values> values, @NotNull @NotNull LongChunk<? extends RowKeys> inputRowKeys, @NotNull @NotNull IntChunk<RowKeys> destinations, @NotNull @NotNull IntChunk<ChunkPositions> startPositions, 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 contextvalues
- a chunk of values to aggregateinputRowKeys
- the input row keys, in post-shift spacedestinations
- the destinations in resultColumn to aggregate into, parallel with startPositions and lengthstartPositions
- the starting positions in the chunk for each destinationlength
- the number of values in the chunk for each destinationstateModified
- 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 context, int chunkSize, 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:
context
- the operator-specific contextchunkSize
- the size of the additionvalues
- the values to aggregateinputRowKeys
- the input row keys, in post-shift spacedestination
- the destination in the result columns- Returns:
- true if the state was modified, false otherwise
-
addRowSet
public boolean addRowSet(IterativeChunkedAggregationOperator.SingletonContext context, @NotNull @NotNull RowSet rowSet, long destination) -
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 resultQueryTable
after initializationstartingDestinationsCount
- 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 itsModifiedColumnSet
finalized yet)newDestinations
- New destinations added on this update
-
makeBucketedContext
Description copied from interface:IterativeChunkedAggregationOperator
Make aIterativeChunkedAggregationOperator.BucketedContext
suitable for this operator if necessary.- Parameters:
size
- The maximum size of input chunks that will be used with the result context- Returns:
- A new
IterativeChunkedAggregationOperator.BucketedContext
, or null if none is necessary
-
startRecording
public final void startRecording(LongConsumer reincarnatedDestinationCallback, LongConsumer emptiedDestinationCallback) -
finishRecording
public final void finishRecording()
-