Package io.deephaven.engine.table.impl
Interface BothIncrementalNaturalJoinStateManager
- All Superinterfaces:
IncrementalNaturalJoinStateManager
- All Known Implementing Classes:
IncrementalNaturalJoinStateManagerTypedBase
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interface -
Method Summary
Modifier and TypeMethodDescriptionvoidaddLeftSide(Context bc, RowSequence leftIndex, ColumnSource<?>[] leftSources, LongArraySource leftRedirections, NaturalJoinModifiedSlotTracker modifiedSlotTracker) voidaddRightSide(Context bc, RowSequence rightIndex, ColumnSource<?>[] rightSources, @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) voidapplyLeftShift(Context pc, ColumnSource<?>[] leftSources, RowSet shiftedRowSet, long shiftDelta) voidapplyRightShift(Context pc, ColumnSource<?>[] rightSources, RowSet shiftedRowSet, long shiftDelta, @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) voidbuildFromRightSide(Table rightTable, ColumnSource<?>[] rightSources) buildIndexedRowRedirection(QueryTable leftTable, BothIncrementalNaturalJoinStateManager.InitialBuildContext ibc, ColumnSource<RowSet> indexRowSets, JoinControl.RedirectionType redirectionType) buildRowRedirectionFromRedirections(QueryTable leftTable, BothIncrementalNaturalJoinStateManager.InitialBuildContext ibc, JoinControl.RedirectionType redirectionType) voidvoiddecorateLeftSide(RowSet leftRowSet, ColumnSource<?>[] leftSources, BothIncrementalNaturalJoinStateManager.InitialBuildContext ibc) makeBuildContext(ColumnSource<?>[] buildSources, long maxSize) makeProbeContext(ColumnSource<?>[] probeSources, long maxSize) voidmodifyByRight(Context pc, RowSet modified, ColumnSource<?>[] rightSources, @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) voidremoveLeft(Context pc, RowSequence leftIndex, ColumnSource<?>[] leftSources, NaturalJoinModifiedSlotTracker modifiedSlotTracker) voidremoveLeftModifications(ColumnSource<?>[] leftSources, RowSet modifiedPreShift, RowSet modifiedPostShift, RowSetBuilderSequential changedPreShift, RowSetBuilderSequential changedPostShift, NaturalJoinModifiedSlotTracker modifiedSlotTracker) In a single pass over the modified left rows, determine which rows' key value actually changed (by comparing the current key values at the post-shift row keys with the previous key values at the pre-shift row keys), remove those changed rows from their previous-key hash slots, and report the changed keys.voidremoveRight(Context pc, RowSequence rightIndex, ColumnSource<?>[] rightSources, @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) Methods inherited from interface io.deephaven.engine.table.impl.IncrementalNaturalJoinStateManager
addRightRowKeyToDuplicates, checkExactMatch, getLeftRowSet, getRightRowKey, getRightRowKeyFromDuplicates, getRightRowSet, keyString, removeRightRowKeyFromDuplicates, shiftOneKey
-
Method Details
-
makeInitialBuildContext
BothIncrementalNaturalJoinStateManager.InitialBuildContext makeInitialBuildContext() -
buildFromRightSide
-
decorateLeftSide
void decorateLeftSide(RowSet leftRowSet, ColumnSource<?>[] leftSources, BothIncrementalNaturalJoinStateManager.InitialBuildContext ibc) -
compactAll
void compactAll() -
buildIndexedRowRedirection
WritableRowRedirection buildIndexedRowRedirection(QueryTable leftTable, BothIncrementalNaturalJoinStateManager.InitialBuildContext ibc, ColumnSource<RowSet> indexRowSets, JoinControl.RedirectionType redirectionType) -
buildRowRedirectionFromRedirections
WritableRowRedirection buildRowRedirectionFromRedirections(QueryTable leftTable, BothIncrementalNaturalJoinStateManager.InitialBuildContext ibc, JoinControl.RedirectionType redirectionType) -
makeProbeContext
-
makeBuildContext
-
addRightSide
void addRightSide(Context bc, RowSequence rightIndex, ColumnSource<?>[] rightSources, @NotNull @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) -
removeRight
void removeRight(Context pc, RowSequence rightIndex, ColumnSource<?>[] rightSources, @NotNull @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) -
modifyByRight
void modifyByRight(Context pc, RowSet modified, ColumnSource<?>[] rightSources, @NotNull @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) -
applyRightShift
void applyRightShift(Context pc, ColumnSource<?>[] rightSources, RowSet shiftedRowSet, long shiftDelta, @NotNull @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) -
addLeftSide
void addLeftSide(Context bc, RowSequence leftIndex, ColumnSource<?>[] leftSources, LongArraySource leftRedirections, NaturalJoinModifiedSlotTracker modifiedSlotTracker) -
removeLeft
void removeLeft(Context pc, RowSequence leftIndex, ColumnSource<?>[] leftSources, NaturalJoinModifiedSlotTracker modifiedSlotTracker) -
applyLeftShift
void applyLeftShift(Context pc, ColumnSource<?>[] leftSources, RowSet shiftedRowSet, long shiftDelta) -
removeLeftModifications
void removeLeftModifications(ColumnSource<?>[] leftSources, RowSet modifiedPreShift, RowSet modifiedPostShift, RowSetBuilderSequential changedPreShift, RowSetBuilderSequential changedPostShift, NaturalJoinModifiedSlotTracker modifiedSlotTracker) In a single pass over the modified left rows, determine which rows' key value actually changed (by comparing the current key values at the post-shift row keys with the previous key values at the pre-shift row keys), remove those changed rows from their previous-key hash slots, and report the changed keys. Rows whose key value is unchanged are collapsed away entirely, so the caller avoids the hash lookups and per-key row set churn of removing and re-adding them. The previous key values are read only once: the same values used for the equality test are reused to drive the removal.- Parameters:
leftSources- the left key sourcesmodifiedPreShift- the modified rows, in pre-shift key space, aligned positionally withmodifiedPostShiftmodifiedPostShift- the modified rows, in post-shift key spacechangedPreShift- output, ascending, receives the pre-shift keys whose key value changed, aligned withchangedPostShift(for the caller's redirection removal)changedPostShift- output, ascending, receives the post-shift keys whose key value changed (to be re-added by the caller)
-