Class SelectorFilter

java.lang.Object
org.apache.druid.segment.filter.SelectorFilter
All Implemented Interfaces:
Filter

public class SelectorFilter extends Object implements Filter
This filter is to select the rows where the dimension has the value. The value can be null. In SQL-compatible null handling mode, this filter is equivalent to dimension = value or dimension IS NULL when the value is null. In default null handling mode, this filter is equivalent to dimension = value or dimension = '' when the value is null.
  • Constructor Details

    • SelectorFilter

      public SelectorFilter(String dimension, String value)
    • SelectorFilter

      public SelectorFilter(String dimension, String value, @Nullable FilterTuning filterTuning)
  • Method Details

    • getBitmapColumnIndex

      @Nullable public BitmapColumnIndex getBitmapColumnIndex(ColumnIndexSelector selector)
      Description copied from interface: Filter
      Returns a BitmapColumnIndex if this filter supports using a bitmap index for filtering for the given input ColumnIndexSelector. The BitmapColumnIndex can be used to compute into a bitmap indicating rows that match this filter result BitmapColumnIndex.computeBitmapResult(BitmapResultFactory, boolean), or examine details about the index prior to computing it, via BitmapColumnIndex.getIndexCapabilities().
      Specified by:
      getBitmapColumnIndex in interface Filter
      Parameters:
      selector - Object used to create BitmapColumnIndex
      Returns:
      BitmapColumnIndex that can build ImmutableBitmap of matched row numbers
    • makeMatcher

      public ValueMatcher makeMatcher(ColumnSelectorFactory factory)
      Description copied from interface: Filter
      Get a ValueMatcher that applies this filter to row values.
      Specified by:
      makeMatcher in interface Filter
      Parameters:
      factory - Object used to create ValueMatchers
      Returns:
      ValueMatcher that applies this filter to row values.
    • makeVectorMatcher

      public VectorValueMatcher makeVectorMatcher(VectorColumnSelectorFactory factory)
      Description copied from interface: Filter
      Get a VectorValueMatcher that applies this filter to row vectors.
      Specified by:
      makeVectorMatcher in interface Filter
      Parameters:
      factory - Object used to create ValueMatchers
      Returns:
      VectorValueMatcher that applies this filter to row vectors.
    • canVectorizeMatcher

      public boolean canVectorizeMatcher(ColumnInspector inspector)
      Description copied from interface: Filter
      Returns true if this filter can produce a vectorized matcher from its "makeVectorMatcher" method.
      Specified by:
      canVectorizeMatcher in interface Filter
      Parameters:
      inspector - Supplies type information for the selectors this filter will match against
    • getRequiredColumns

      public Set<String> getRequiredColumns()
      Description copied from interface: Filter
      Set of columns used by a filter.
      Specified by:
      getRequiredColumns in interface Filter
    • supportsRequiredColumnRewrite

      public boolean supportsRequiredColumnRewrite()
      Description copied from interface: Filter
      Returns true is this filter is able to return a copy of this filter that is identical to this filter except that it operates on different columns, based on a renaming map.
      Specified by:
      supportsRequiredColumnRewrite in interface Filter
    • rewriteRequiredColumns

      public Filter rewriteRequiredColumns(Map<String,String> columnRewrites)
      Description copied from interface: Filter
      Return a copy of this filter that is identical to the this filter except that it operates on different columns, based on a renaming map where the key is the column to be renamed in the filter, and the value is the new column name.

      For example, if I have a filter (A = hello), and I have a renaming map (A -> B), this should return the filter (B = hello)

      Specified by:
      rewriteRequiredColumns in interface Filter
      Parameters:
      columnRewrites - Column rewrite map
      Returns:
      Copy of this filter that operates on new columns based on the rewrite map
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getDimension

      public String getDimension()
    • getValue

      public String getValue()
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object