Class BlinkLastChunkedOperator
java.lang.Object
io.deephaven.engine.table.impl.by.BaseBlinkFirstOrLastChunkedOperator
io.deephaven.engine.table.impl.by.CopyingPermutedBlinkFirstOrLastChunkedOperator
io.deephaven.engine.table.impl.by.BlinkLastChunkedOperator
- All Implemented Interfaces:
IterativeChunkedAggregationOperator
A lastBy 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.CopyingPermutedBlinkFirstOrLastChunkedOperator
permuteKernels
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 context, Chunk<? extends Values> values, @NotNull LongChunk<? extends RowKeys> inputRowKeys, @NotNull IntChunk<RowKeys> destinations, @NotNull IntChunk<ChunkPositions> startPositions, @NotNull 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) final void
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 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.CopyingPermutedBlinkFirstOrLastChunkedOperator
copyStreamToResult, ensureCapacity, startTrackingPrevValues
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, makeBucketedContext, 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
-
addChunk
public void addChunk(IterativeChunkedAggregationOperator.BucketedContext context, 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:
context
- 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
-
startRecording
public final void startRecording(LongConsumer reincarnatedDestinationCallback, LongConsumer emptiedDestinationCallback) -
finishRecording
public final void finishRecording()
-