Class ExpressionFilter

  • All Implemented Interfaces:
    Filter

    public class ExpressionFilter
    extends Object
    implements Filter
    • Constructor Detail

      • ExpressionFilter

        public ExpressionFilter​(com.google.common.base.Supplier<Expr> expr,
                                FilterTuning filterTuning)
    • Method Detail

      • 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
      • 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.
      • supportsSelectivityEstimation

        public boolean supportsSelectivityEstimation​(ColumnSelector columnSelector,
                                                     ColumnIndexSelector indexSelector)
        Description copied from interface: Filter
        Indicates whether this filter supports selectivity estimation. A filter supports selectivity estimation if it supports bitmap index and the dimension which the filter evaluates does not have multi values.
        Specified by:
        supportsSelectivityEstimation in interface Filter
        Parameters:
        columnSelector - Object to check the dimension has multi values.
        indexSelector - Object used to retrieve bitmap indexes
        Returns:
        true if this Filter supports selectivity estimation, false otherwise.
      • estimateSelectivity

        public double estimateSelectivity​(ColumnIndexSelector indexSelector)
        Description copied from interface: Filter
        Estimate selectivity of this filter. This method can be used for cost-based query planning like in AutoStrategy. To avoid significant performance degradation for calculating the exact cost, implementation of this method targets to achieve rapid selectivity estimation with reasonable sacrifice of the accuracy. As a result, the estimated selectivity might be different from the exact value.
        Specified by:
        estimateSelectivity in interface Filter
        Parameters:
        indexSelector - Object used to retrieve indexes
        Returns:
        an estimated selectivity ranging from 0 (filter selects no rows) to 1 (filter selects all rows).
        See Also:
        Filter.getBitmapColumnIndex(ColumnIndexSelector)
      • 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
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object