Class Filters


  • public class Filters
    extends Object
    • Constructor Detail

      • Filters

        public Filters()
    • Method Detail

      • toFilters

        public static List<Filter> toFilters​(List<DimFilter> dimFilters)
        Convert a list of DimFilters to a list of Filters.
        Parameters:
        dimFilters - list of DimFilters, should all be non-null
        Returns:
        list of Filters
      • toFilter

        @Nullable
        public static Filter toFilter​(@Nullable
                                      DimFilter dimFilter)
        Convert a DimFilter to a Filter.
        Parameters:
        dimFilter - dimFilter
        Returns:
        converted filter, or null if input was null
      • makeValueMatcher

        public static ValueMatcher makeValueMatcher​(ColumnSelectorFactory columnSelectorFactory,
                                                    String columnName,
                                                    DruidPredicateFactory predicateFactory)
        Create a ValueMatcher that applies a predicate to row values.

        The caller provides a predicate factory that can create a predicate for each value type supported by Druid. See DruidPredicateFactory for more information.

        When creating the ValueMatcher, the ValueMatcherFactory implementation should decide what type of predicate to create from the predicate factory based on the ValueType of the specified dimension.

        Parameters:
        columnSelectorFactory - Selector for columns.
        columnName - The column to filter.
        predicateFactory - Predicate factory
        Returns:
        An object that applies a predicate to row values
      • estimateSelectivity

        public static double estimateSelectivity​(Iterator<ImmutableBitmap> bitmaps,
                                                 long totalNumRows)
      • and

        public static Filter and​(List<Filter> filters)
        Create a filter representing an AND relationship across a list of filters. Deduplicates filters, flattens stacks, and removes null filters and literal "false" filters.
        Parameters:
        filters - List of filters
        Returns:
        If "filters" has more than one filter remaining after processing, returns AndFilter. If "filters" has a single element remaining after processing, return that filter alone.
        Throws:
        IllegalArgumentException - if "filters" is empty or only contains nulls
      • or

        public static Filter or​(List<Filter> filters)
        Create a filter representing an OR relationship across a list of filters. Deduplicates filters, flattens stacks, and removes null filters and literal "false" filters.
        Parameters:
        filters - List of filters
        Returns:
        If "filters" has more than one filter remaining after processing, returns OrFilter. If "filters" has a single element remaining after processing, return that filter alone.
        Throws:
        IllegalArgumentException - if "filters" is empty
      • filterMatchesNull

        public static boolean filterMatchesNull​(Filter filter)
      • countNumberOfFilters

        public static int countNumberOfFilters​(@Nullable
                                               Filter filter)