Class UnsortedClockFilter
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.UnsortedClockFilter
- All Implemented Interfaces:
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 does
not require any pre-sorting of the input table, instead preserving relative order in the initial output and each
subsequent run. Relative to SortedClockFilter, this implementation may require less overall storage and do less
overall work for tables with relatively few monotonically nondecreasing ranges (that is, m (number of ranges)
<<< n (size in rows)), but it will do more work on run().
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class io.deephaven.engine.table.impl.select.ClockFilter
ClockFilter.Range
Nested classes/interfaces inherited from interface io.deephaven.api.filter.Filter
Filter.Visitor<T>
Nested classes/interfaces inherited from interface io.deephaven.engine.table.impl.select.WhereFilter
WhereFilter.PreviousFilteringNotSupported, WhereFilter.RecomputeListener
-
Field Summary
Fields inherited from class io.deephaven.engine.table.impl.select.ClockFilter
clock, columnName
Fields inherited from class io.deephaven.engine.table.impl.select.WhereFilterLivenessArtifactImpl
updateGraph
Fields inherited from interface io.deephaven.engine.table.impl.select.WhereFilter
ZERO_LENGTH_WHERE_FILTER_ARRAY
-
Constructor Summary
ConstructorDescriptionUnsortedClockFilter
(@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 WritableRowSet
initializeAndGetInitialIndex
(@NotNull RowSet selection, @NotNull RowSet fullSet, @NotNull Table table) boolean
boolean
void
Advise this filter that sorting has been performed.protected @Nullable WritableRowSet
Methods inherited from class io.deephaven.engine.table.impl.select.ClockFilter
destroy, filter, getColumnArrays, getColumns, getUpdateGraph, init, isRefreshing, isSimpleFilter, run, satisfied, setRecomputeListener
Methods inherited from class io.deephaven.engine.table.impl.select.WhereFilterLivenessArtifactImpl
isAutomatedFilter, setAutomatedFilter
Methods inherited from class io.deephaven.engine.liveness.LivenessArtifact
manageWithCurrentScope
Methods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessNode
getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryUnmanage, tryUnmanage
Methods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
dropReference, tryRetainReference
Methods inherited from class io.deephaven.util.referencecounting.ReferenceCounted
append, decrementReferenceCount, forceReferenceCountToZero, getReferenceCountDebug, incrementReferenceCount, resetReferenceCount, toString, tryDecrementReferenceCount, tryIncrementReferenceCount
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface io.deephaven.engine.liveness.LivenessManager
manage
Methods inherited from interface io.deephaven.engine.liveness.LivenessNode
unmanage, unmanage
Methods inherited from interface io.deephaven.engine.liveness.LivenessReferent
dropReference, getReferentDescription, retainReference, tryRetainReference
Methods inherited from interface io.deephaven.base.log.LogOutputAppendable
append
Methods inherited from interface io.deephaven.engine.updategraph.NotificationQueue.Dependency
getUpdateGraph
Methods inherited from interface io.deephaven.engine.table.impl.select.WhereFilter
beginOperation, canMemoize, filter, filterInverse, init, invert, isAutomatedFilter, setAutomatedFilter, validateSafeForRefresh, walk, walk
-
Constructor Details
-
UnsortedClockFilter
-
-
Method Details
-
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:ReindexingFilter
Get 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:ReindexingFilter
Advise this filter that sorting has been performed. requiresSorting must return false hereafter. -
copy
Description copied from interface:WhereFilter
Create a copy of this WhereFilter.- Returns:
- an independent copy of this WhereFilter.
-
initializeAndGetInitialIndex
@Nullable protected @Nullable WritableRowSet initializeAndGetInitialIndex(@NotNull @NotNull RowSet selection, @NotNull @NotNull RowSet fullSet, @NotNull @NotNull Table table) - Specified by:
initializeAndGetInitialIndex
in classClockFilter
-
updateAndGetAddedIndex
- Specified by:
updateAndGetAddedIndex
in classClockFilter
-
permitParallelization
public boolean permitParallelization()- Returns:
- if this filter can be applied in parallel
-