Class ConditionFilter
java.lang.Object
io.deephaven.engine.table.impl.select.WhereFilterImpl
io.deephaven.engine.table.impl.select.AbstractConditionFilter
io.deephaven.engine.table.impl.select.ConditionFilter
- All Implemented Interfaces:
ConcurrencyControl<Filter>,Expression,Filter,WhereFilter,Serializable
A condition filter evaluates a formula against a table.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic interfacestatic final classstatic final classstatic final classstatic interfacestatic interfacestatic classstatic classNested classes/interfaces inherited from class io.deephaven.engine.table.impl.select.AbstractConditionFilter
AbstractConditionFilter.FilterNested classes/interfaces inherited from interface io.deephaven.engine.table.impl.select.WhereFilter
WhereFilter.PreviousFilteringNotSupported, WhereFilter.RecomputeListener, WhereFilter.Visitor<T> -
Field Summary
FieldsFields inherited from class io.deephaven.engine.table.impl.select.AbstractConditionFilter
formula, initialized, paramsFields inherited from interface io.deephaven.engine.table.impl.select.WhereFilter
ZERO_LENGTH_WHERE_FILTER_ARRAY -
Method Summary
Modifier and TypeMethodDescriptioncopy()Create a copy of this WhereFilter.static WhereFiltercreateConditionFilter(@NotNull String formula) static WhereFiltercreateConditionFilter(@NotNull String formula, FormulaParserConfiguration parser) static WhereFiltercreateStateless(@NotNull String formula) protected voidgenerateFilterCode(@NotNull TableDefinition tableDefinition, @NotNull TimeLiteralReplacedExpression timeConversionResult, QueryLanguageParser.Result result, @NotNull QueryCompilerRequestProcessor compilationProcessor) @NotNull AbstractConditionFilter.FilterRetrieve the currentfilterfor this condition filter or create a new one initialized to the provided table and row set.intGet the number of inputs (columns and special variables) used by this filter.booleanrenameFilter(Map<String, String> renames) protected voidWhen numba vectorized functions are used to evaluate query filters, we need to create a special ChunkFilter that can handle packing and unpacking arrays required/returned by the vectorized function, essentially bypassing the regular code generation process which isn't able to support such use cases without needing some major rework.Methods inherited from class io.deephaven.engine.table.impl.select.AbstractConditionFilter
filter, getColumnArrays, getColumns, getFormulaShiftedColumnDefinitions, hasConstantArrayAccess, hasVirtualRowVariables, init, init, isSimpleFilter, onCopy, setRecomputeListener, toString, validateSafeForRefreshMethods inherited from class io.deephaven.engine.table.impl.select.WhereFilterImpl
isAutomatedFilter, setAutomatedFilterMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface io.deephaven.engine.table.impl.select.WhereFilter
beginOperation, canMemoize, filter, filterInverse, invert, isRefreshing, walk, walk, walk, withDeclaredBarriers, withRespectedBarriers, withSerial
-
Field Details
-
CHUNK_SIZE
public static final int CHUNK_SIZE- See Also:
-
CLASS_NAME
- See Also:
-
-
Method Details
-
createConditionFilter
public static WhereFilter createConditionFilter(@NotNull @NotNull String formula, FormulaParserConfiguration parser) -
createConditionFilter
-
createStateless
-
getNumInputsUsed
public int getNumInputsUsed()Get the number of inputs (columns and special variables) used by this filter. -
generateFilterCode
protected void generateFilterCode(@NotNull @NotNull TableDefinition tableDefinition, @NotNull @NotNull TimeLiteralReplacedExpression timeConversionResult, @NotNull QueryLanguageParser.Result result, @NotNull @NotNull QueryCompilerRequestProcessor compilationProcessor) - Specified by:
generateFilterCodein classAbstractConditionFilter
-
getFilter
@NotNull public @NotNull AbstractConditionFilter.Filter getFilter(Table table, RowSet fullSet) throws InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException Description copied from class:AbstractConditionFilterRetrieve the currentfilterfor this condition filter or create a new one initialized to the provided table and row set. With acontextfromAbstractConditionFilter.Filter.getContext(int), this filter can be used for directly filtering chunked data.- Specified by:
getFilterin classAbstractConditionFilter- Parameters:
table- the table to filter, or a table with a compatible schemafullSet- the full set of rows currently in the table, used to populate the virtual row variables such asi,ii, andk- Returns:
- the initialized filter
- Throws:
InstantiationExceptionIllegalAccessExceptionNoSuchMethodExceptionInvocationTargetException
-
setPythonFilter
Description copied from class:AbstractConditionFilterWhen numba vectorized functions are used to evaluate query filters, we need to create a special ChunkFilter that can handle packing and unpacking arrays required/returned by the vectorized function, essentially bypassing the regular code generation process which isn't able to support such use cases without needing some major rework.- Specified by:
setPythonFilterin classAbstractConditionFilter- Parameters:
filter- the filter to set
-
copy
Description copied from interface:WhereFilterCreate a copy of this WhereFilter.- Specified by:
copyin interfaceWhereFilter- Specified by:
copyin classAbstractConditionFilter- Returns:
- an independent copy of this WhereFilter.
-
renameFilter
- Specified by:
renameFilterin classAbstractConditionFilter
-
permitParallelization
public boolean permitParallelization()- Returns:
- if this filter can be applied in parallel
-