Class RangeFilter

    • Method Detail

      • getColumn

        public String getColumn()
      • getMatchValueType

        public ColumnType getMatchValueType()
      • isLowerOpen

        public boolean isLowerOpen()
      • isUpperOpen

        public boolean isUpperOpen()
      • hasLowerBound

        public boolean hasLowerBound()
      • hasUpperBound

        public boolean hasUpperBound()
      • getCacheKey

        public byte[] getCacheKey()
        Description copied from interface: Cacheable
        Get a byte array used as a cache key.
        Specified by:
        getCacheKey in interface Cacheable
        Returns:
        a cache key
      • optimize

        public DimFilter optimize()
        Specified by:
        optimize in interface DimFilter
        Returns:
        Returns an optimized filter. returning the same filter can be a straightforward default implementation.
      • toFilter

        public Filter toFilter()
        Description copied from interface: DimFilter
        Returns a Filter that implements this DimFilter. This does not generally involve optimizing the DimFilter, so it does make sense to optimize first and then call toFilter on the resulting DimFilter.
        Specified by:
        toFilter in interface DimFilter
        Returns:
        a Filter that implements this DimFilter, or null if this DimFilter is a no-op.
      • getDimensionRangeSet

        public com.google.common.collect.RangeSet<String> getDimensionRangeSet​(String dimension)
        Description copied from interface: DimFilter
        Returns a RangeSet that represents the possible range of the input dimension for this DimFilter.This is applicable to filters that use dimensions such as select, in, bound, and logical filters such as and, or, not. Null represents that the range cannot be determined, and will be returned for filters such as javascript and regex where there's no easy way to determine the filtered range. It is treated the same way as an all range in most cases, however there are some subtle difference at logical filters such as not filter, where complement of all is nothing while complement of null is still null.
        Specified by:
        getDimensionRangeSet in interface DimFilter
        Parameters:
        dimension - name of the dimension to get range for
        Returns:
        a RangeSet that represent the possible range of the input dimension, or null if it is not possible to determine for this DimFilter.
      • 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.
      • 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 DimFilter
        Specified by:
        getRequiredColumns in interface Filter
        Returns:
        a HashSet that represents all columns' name which the DimFilter required to do 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
      • isEquality

        public boolean isEquality()
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object