Class SortedClockFilter
java.lang.Object
io.deephaven.util.referencecounting.ReferenceCounted
io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
io.deephaven.engine.liveness.ReferenceCountedLivenessNode
io.deephaven.engine.liveness.LivenessArtifact
io.deephaven.engine.table.impl.select.WhereFilterLivenessArtifactImpl
io.deephaven.engine.table.impl.select.ClockFilter
io.deephaven.engine.table.impl.select.SortedClockFilter
- All Implemented Interfaces:
ConcurrencyControl<Filter>,Expression,Filter,LogOutputAppendable,LivenessManager,LivenessNode,LivenessReferent,ReindexingFilter,WhereFilter,NotificationQueue.Dependency,Serializable,Runnable
This will filter a table on an Instant column for all rows greater than "now" according to a supplied clock. It
requires sorting of the input table according to the specified timestamp column, leveraging this for a very efficient
implementation (albeit one that requires sorting first) and an output sequence that is monotonically nondecreasing in
the specified column.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class io.deephaven.engine.table.impl.select.ClockFilter
ClockFilter.RangeNested classes/interfaces inherited from interface io.deephaven.engine.table.impl.select.WhereFilter
WhereFilter.PreviousFilteringNotSupported, WhereFilter.RecomputeListener, WhereFilter.Visitor<T> -
Field Summary
Fields inherited from class io.deephaven.engine.table.impl.select.ClockFilter
clock, columnNameFields inherited from class io.deephaven.engine.table.impl.select.WhereFilterLivenessArtifactImpl
updateGraphFields inherited from interface io.deephaven.engine.table.impl.select.WhereFilter
ZERO_LENGTH_WHERE_FILTER_ARRAY -
Constructor Summary
ConstructorsConstructorDescriptionSortedClockFilter(@NotNull String columnName, @NotNull Clock clock, boolean refreshing) -
Method Summary
Modifier and TypeMethodDescriptioncopy()Create a copy of this WhereFilter.String[]Get the columns on which the input table should be sorted before filtering.protected @Nullable WritableRowSetinitializeAndGetInitialIndex(@NotNull RowSet selection, @NotNull RowSet fullSet, @NotNull Table table) This method is called from theClockFilter.filter(RowSet, RowSet, Table, boolean)method to initialize the filter's internal data structures.booleanvoidAdvise this filter that sorting has been performed.protected @Nullable WritableRowSetThis method is called from theClockFilter.run()method as part of the update graph source refresh.Methods inherited from class io.deephaven.engine.table.impl.select.ClockFilter
destroy, filter, getColumnArrays, getColumns, getUpdateGraph, init, isRefreshing, isSimpleFilter, run, satisfied, setRecomputeListenerMethods inherited from class io.deephaven.engine.table.impl.select.WhereFilterLivenessArtifactImpl
isAutomatedFilter, setAutomatedFilterMethods inherited from class io.deephaven.engine.liveness.LivenessArtifact
manageWithCurrentScopeMethods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessNode
ensureCleanupOnGC, findAnyManagedReferent, forEachManagedReference, getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryUnmanage, tryUnmanageMethods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
dropReference, tryRetainReferenceMethods inherited from class io.deephaven.util.referencecounting.ReferenceCounted
append, decrementReferenceCount, forceReferenceCountToZero, getReferenceCountDebug, incrementReferenceCount, resetReferenceCount, toString, tryDecrementReferenceCount, tryIncrementReferenceCountMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface io.deephaven.engine.liveness.LivenessManager
manage, unmanage, unmanageMethods inherited from interface io.deephaven.engine.liveness.LivenessReferent
dropReference, getReferentDescription, retainReference, tryRetainReferenceMethods inherited from interface io.deephaven.base.log.LogOutputAppendable
appendMethods inherited from interface io.deephaven.engine.updategraph.NotificationQueue.Dependency
getUpdateGraphMethods inherited from interface io.deephaven.engine.table.impl.select.WhereFilter
beginOperation, canMemoize, filter, filterInverse, hasVirtualRowVariables, init, invert, isAutomatedFilter, isSerial, permitParallelization, setAutomatedFilter, validateSafeForRefresh, walk, walk, walk, withDeclaredBarriers, withRespectedBarriers, withSerial
-
Constructor Details
-
SortedClockFilter
-
-
Method Details
-
copy
Description copied from interface:WhereFilterCreate a copy of this WhereFilter.- Returns:
- an independent copy of this WhereFilter.
-
requiresSorting
public boolean requiresSorting()- Returns:
- True iff getSortColumns will return a non-null, non-empty array of column names to sort on.
-
getSortColumns
Description copied from interface:ReindexingFilterGet the columns on which the input table should be sorted before filtering.- Returns:
- Columns to sort on, or null if there are no such columns
-
sortingDone
public void sortingDone()Description copied from interface:ReindexingFilterAdvise this filter that sorting has been performed. requiresSorting must return false hereafter. -
initializeAndGetInitialIndex
@Nullable protected @Nullable WritableRowSet initializeAndGetInitialIndex(@NotNull @NotNull RowSet selection, @NotNull @NotNull RowSet fullSet, @NotNull @NotNull Table table) Description copied from class:ClockFilterThis method is called from theClockFilter.filter(RowSet, RowSet, Table, boolean)method to initialize the filter's internal data structures.The filter permits parallelization, so it may be called from many initialization threads concurrently.
- Specified by:
initializeAndGetInitialIndexin classClockFilter- Parameters:
selection- the selection to be filteredfullSet- the full set of rows in the source tabletable- the table that is being filtered- Returns:
- the rowset that matches the filter at initialization time
-
updateAndGetAddedIndex
Description copied from class:ClockFilterThis method is called from theClockFilter.run()method as part of the update graph source refresh.This method is not called concurrently, because there are no updates from the source table.
- Specified by:
updateAndGetAddedIndexin classClockFilter
-