Package io.deephaven.engine.table.impl
Class RightIncrementalNaturalJoinStateManager
java.lang.Object
io.deephaven.engine.table.impl.StaticNaturalJoinStateManager
io.deephaven.engine.table.impl.RightIncrementalNaturalJoinStateManager
- All Implemented Interfaces:
IncrementalNaturalJoinStateManager
- Direct Known Subclasses:
RightIncrementalNaturalJoinStateManagerTypedBase
public abstract class RightIncrementalNaturalJoinStateManager
extends StaticNaturalJoinStateManager
implements IncrementalNaturalJoinStateManager
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface -
Field Summary
Fields inherited from class io.deephaven.engine.table.impl.StaticNaturalJoinStateManager
addOnly, DUPLICATE_RIGHT_VALUE, joinType, keySourcesForErrorMessages, NO_RIGHT_ENTRY_VALUEFields inherited from interface io.deephaven.engine.table.impl.IncrementalNaturalJoinStateManager
EMPTY_RIGHT_STATE, FIRST_DUPLICATE, TOMBSTONE_RIGHT_STATE -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedRightIncrementalNaturalJoinStateManager(ColumnSource<?>[] keySourcesForErrorMessages, NaturalJoinType joinType, boolean addOnly) -
Method Summary
Modifier and TypeMethodDescriptionabstract voidaddRightSide(RowSequence rightIndex, ColumnSource<?>[] rightSources) abstract voidaddRightSide(Context pc, RowSequence rightIndex, ColumnSource<?>[] rightSources, @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) abstract voidapplyRightShift(Context pc, ColumnSource<?>[] rightSources, RowSet shiftedRowSet, long shiftDelta, @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) abstract voidbuildFromLeftSide(Table leftTable, ColumnSource<?>[] leftSources, RightIncrementalNaturalJoinStateManager.InitialBuildContext initialBuildContext) abstract WritableRowRedirectionbuildRowRedirectionFromHashSlot(QueryTable leftTable, RightIncrementalNaturalJoinStateManager.InitialBuildContext initialBuildContext, JoinControl.RedirectionType redirectionType) abstract WritableRowRedirectionbuildRowRedirectionFromHashSlotIndexed(QueryTable leftTable, ColumnSource<RowSet> rowSetSource, int groupingSize, RightIncrementalNaturalJoinStateManager.InitialBuildContext initialBuildContext, JoinControl.RedirectionType redirectionType) abstract voidconvertLeftDataIndex(int groupingSize, RightIncrementalNaturalJoinStateManager.InitialBuildContext initialBuildContext, ColumnSource<RowSet> rowSetSource) makeInitialBuildContext(Table leftTable) abstract ContextmakeProbeContext(ColumnSource<?>[] probeSources, long maxSize) abstract voidmodifyByRight(Context pc, RowSet modified, ColumnSource<?>[] rightSources, @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) abstract voidremoveRight(Context pc, RowSequence rightIndex, ColumnSource<?>[] rightSources, @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) abstract voidremoveRightModifications(ColumnSource<?>[] rightSources, RowSet modifiedPreShift, RowSet modifiedPostShift, RowSetBuilderSequential changedPreShift, RowSetBuilderSequential changedPostShift, @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) In a single pass over the modified right 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 rows from their previous-key hash slots, and report the changed keys.Methods inherited from class io.deephaven.engine.table.impl.StaticNaturalJoinStateManager
buildRowRedirection, checkExactMatch, decorateLeftSide, extractKeyStringFromSourceTableMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.deephaven.engine.table.impl.IncrementalNaturalJoinStateManager
addRightRowKeyToDuplicates, checkExactMatch, duplicateCreationChangesState, getLeftRowSet, getRightRowKey, getRightRowKeyFromDuplicates, getRightRowSet, keyString, removeRightRowKeyFromDuplicates, shiftOneKey
-
Constructor Details
-
RightIncrementalNaturalJoinStateManager
protected RightIncrementalNaturalJoinStateManager(ColumnSource<?>[] keySourcesForErrorMessages, NaturalJoinType joinType, boolean addOnly)
-
-
Method Details
-
buildFromLeftSide
public abstract void buildFromLeftSide(Table leftTable, ColumnSource<?>[] leftSources, RightIncrementalNaturalJoinStateManager.InitialBuildContext initialBuildContext) -
convertLeftDataIndex
public abstract void convertLeftDataIndex(int groupingSize, RightIncrementalNaturalJoinStateManager.InitialBuildContext initialBuildContext, ColumnSource<RowSet> rowSetSource) -
addRightSide
-
buildRowRedirectionFromHashSlot
public abstract WritableRowRedirection buildRowRedirectionFromHashSlot(QueryTable leftTable, RightIncrementalNaturalJoinStateManager.InitialBuildContext initialBuildContext, JoinControl.RedirectionType redirectionType) -
buildRowRedirectionFromHashSlotIndexed
public abstract WritableRowRedirection buildRowRedirectionFromHashSlotIndexed(QueryTable leftTable, ColumnSource<RowSet> rowSetSource, int groupingSize, RightIncrementalNaturalJoinStateManager.InitialBuildContext initialBuildContext, JoinControl.RedirectionType redirectionType) -
applyRightShift
public abstract void applyRightShift(Context pc, ColumnSource<?>[] rightSources, RowSet shiftedRowSet, long shiftDelta, @NotNull @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) -
modifyByRight
public abstract void modifyByRight(Context pc, RowSet modified, ColumnSource<?>[] rightSources, @NotNull @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) -
removeRight
public abstract void removeRight(Context pc, RowSequence rightIndex, ColumnSource<?>[] rightSources, @NotNull @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) -
removeRightModifications
public abstract void removeRightModifications(ColumnSource<?>[] rightSources, RowSet modifiedPreShift, RowSet modifiedPostShift, RowSetBuilderSequential changedPreShift, RowSetBuilderSequential changedPostShift, @NotNull @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) In a single pass over the modified right 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 rows from their previous-key hash slots, and report the changed keys. Rows whose key value is unchanged keep their slot and cost no hash lookups.- Parameters:
rightSources- the right 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 (to be excluded from the caller's shift processing)changedPostShift- output, ascending, receives the post-shift keys whose key value changed (to be re-added by the caller)
-
addRightSide
public abstract void addRightSide(Context pc, RowSequence rightIndex, ColumnSource<?>[] rightSources, @NotNull @NotNull NaturalJoinModifiedSlotTracker modifiedSlotTracker) -
makeProbeContext
-
makeInitialBuildContext
public abstract RightIncrementalNaturalJoinStateManager.InitialBuildContext makeInitialBuildContext(Table leftTable)
-