Class AbstractRangeFilter

java.lang.Object
io.deephaven.engine.table.impl.select.WhereFilterImpl
io.deephaven.engine.table.impl.select.AbstractRangeFilter
All Implemented Interfaces:
Expression, Filter, WhereFilter, Serializable
Direct Known Subclasses:
ByteRangeFilter, CharRangeFilter, ComparableRangeFilter, DoubleRangeFilter, FloatRangeFilter, IntRangeFilter, LongRangeFilter, ShortRangeFilter, SingleSidedComparableRangeFilter

public abstract class AbstractRangeFilter extends WhereFilterImpl
A filter that determines if a column value is between an upper and lower bound (which each may either be inclusive or exclusive).
See Also:
  • Field Details

    • columnName

      protected final String columnName
    • upperInclusive

      protected final boolean upperInclusive
    • lowerInclusive

      protected final boolean lowerInclusive
  • Method Details

    • makeBigDecimalRange

      public static WhereFilter makeBigDecimalRange(String columnName, String val)
    • getColumns

      public List<String> getColumns()
      Description copied from interface: WhereFilter
      Get the columns required by this select filter.

      This filter must already be initialized before calling this method.

      Returns:
      the columns used as input by this select filter.
    • getColumnArrays

      public List<String> getColumnArrays()
      Description copied from interface: WhereFilter
      Get the array columns required by this select filter.

      This filter must already be initialized before calling this method.

      Returns:
      the columns used as array input by this select filter.
    • filter

      @NotNull public @NotNull WritableRowSet filter(@NotNull @NotNull RowSet selection, @NotNull @NotNull RowSet fullSet, @NotNull @NotNull Table table, boolean usePrev)
      Description copied from interface: WhereFilter
      Filter selection to only matching rows.
      Parameters:
      selection - the indices that should be filtered. The selection must be a subset of fullSet, and may include rows that the engine determines need not be evaluated to produce the result. Implementations may not mutate or close selection.
      fullSet - the complete RowSet of the table to filter. The fullSet is used for calculating variables like "i" or "ii". Implementations may not mutate or close fullSet.
      table - the table to filter
      usePrev - true if previous values should be used. Implementing previous value filtering is optional, and a WhereFilter.PreviousFilteringNotSupported exception may be thrown. If a PreviousFiltering exception is thrown, then the caller must acquire the PeriodicUpdateGraph lock.
      Returns:
      The subset of selection accepted by this filter; ownership passes to the caller
    • isSimpleFilter

      public boolean isSimpleFilter()
      Returns:
      true if this is a filter that does not require any code execution, but rather is handled entirely within the database engine.
    • setRecomputeListener

      public void setRecomputeListener(WhereFilter.RecomputeListener listener)
      Description copied from interface: WhereFilter
      Set the WhereFilter.RecomputeListener that should be notified if results based on this WhereFilter must be recomputed.
      Parameters:
      listener - The WhereFilter.RecomputeListener to notify