Class CopyingPermutedBlinkFirstOrLastChunkedOperator
java.lang.Object
io.deephaven.engine.table.impl.by.BaseBlinkFirstOrLastChunkedOperator
io.deephaven.engine.table.impl.by.CopyingPermutedBlinkFirstOrLastChunkedOperator
- All Implemented Interfaces:
IterativeChunkedAggregationOperator
- Direct Known Subclasses:
BlinkLastChunkedOperator
,ByteBlinkSortedFirstOrLastChunkedOperator
,CharBlinkSortedFirstOrLastChunkedOperator
,DoubleBlinkSortedFirstOrLastChunkedOperator
,FloatBlinkSortedFirstOrLastChunkedOperator
,IntBlinkSortedFirstOrLastChunkedOperator
,LongBlinkSortedFirstOrLastChunkedOperator
,ObjectBlinkSortedFirstOrLastChunkedOperator
,ShortBlinkSortedFirstOrLastChunkedOperator
public abstract class CopyingPermutedBlinkFirstOrLastChunkedOperator
extends BaseBlinkFirstOrLastChunkedOperator
Base-class for stream first/last-by chunked operators that need to copy data from source columns to result columns
with a permutation on the redirected indices.
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.deephaven.engine.table.impl.by.IterativeChunkedAggregationOperator
IterativeChunkedAggregationOperator.BucketedContext, IterativeChunkedAggregationOperator.SingletonContext
-
Field Summary
Modifier and TypeFieldDescriptionprotected final PermuteKernel[]
Permute kernels, parallel toBaseBlinkFirstOrLastChunkedOperator.outputColumns
.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
-
Constructor Summary
ConstructorDescriptionCopyingPermutedBlinkFirstOrLastChunkedOperator
(@NotNull MatchPair[] resultPairs, @NotNull Table blinkTable) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
copyStreamToResult
(@NotNull RowSequence destinations) For each destination slot, map to the latest source row key and copy source values to destination slots for all result columns.void
ensureCapacity
(long tableSize) Ensure that this operator can handle destinations up to tableSize - 1.final void
final void
startRecording
(LongConsumer reincarnatedDestinationCallback, LongConsumer emptiedDestinationCallback) final void
Called after initialization; when the operator's result columns must have previous tracking enabled.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
addChunk, addChunk, addRowSet, initializeRefreshing, makeBucketedContext, makeSingletonContext, propagateFailure, propagateInitialState, propagateUpdates, requiresRunFinds, unchunkedRowSet
-
Field Details
-
permuteKernels
Permute kernels, parallel toBaseBlinkFirstOrLastChunkedOperator.outputColumns
.
-
-
Constructor Details
-
CopyingPermutedBlinkFirstOrLastChunkedOperator
-
-
Method Details
-
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
-
startTrackingPrevValues
public final void startTrackingPrevValues()Description copied from interface:IterativeChunkedAggregationOperator
Called after initialization; when the operator's result columns must have previous tracking enabled. -
copyStreamToResult
For each destination slot, map to the latest source row key and copy source values to destination slots for all result columns.
This implementation proceeds chunk-wise in the following manner:
- Get a chunk of destination slots
- Fill a chunk of source indices
- Sort the chunk of source indices
- For each input column: get a chunk of input values, permute it into a chunk of destination values, and then fill the output column
- Parameters:
destinations
- The changed (added or modified) destination slots as anRowSequence
-
startRecording
public final void startRecording(LongConsumer reincarnatedDestinationCallback, LongConsumer emptiedDestinationCallback) -
finishRecording
public final void finishRecording()
-