public class Filters extends Object
| Constructor and Description |
|---|
Filters() |
| Modifier and Type | Method and Description |
|---|---|
static Filter |
and(List<Filter> filters)
Create a filter representing an AND relationship across a list of filters.
|
static boolean |
checkFilterTuningUseIndex(String columnName,
ColumnIndexSelector indexSelector,
FilterTuning filterTuning) |
static ImmutableBitmap |
computeDefaultBitmapResults(Filter filter,
ColumnIndexSelector selector) |
static Filter |
convertToCNFFromQueryContext(Query query,
Filter filter) |
static double |
estimateSelectivity(Iterator<ImmutableBitmap> bitmaps,
long totalNumRows) |
static boolean |
filterMatchesNull(Filter filter) |
static BitmapColumnIndex |
makeNullIndex(boolean matchesNull,
ColumnIndexSelector selector) |
static BitmapColumnIndex |
makePredicateIndex(String column,
ColumnIndexSelector selector,
DruidPredicateFactory predicateFactory) |
static ValueMatcher |
makeValueMatcher(ColumnSelectorFactory columnSelectorFactory,
String columnName,
DruidPredicateFactory predicateFactory)
Create a ValueMatcher that applies a predicate to row values.
|
static ValueMatcher |
makeValueMatcher(ColumnSelectorFactory columnSelectorFactory,
String columnName,
String value)
Create a ValueMatcher that compares row values to the provided string.
|
static Optional<Filter> |
maybeAnd(List<Filter> filters)
Like
and(java.util.List<org.apache.druid.query.filter.Filter>), but returns an empty Optional instead of throwing an exception if "filters" is empty
or only contains nulls. |
static Optional<Filter> |
maybeOr(List<Filter> filters)
Like
or(java.util.List<org.apache.druid.query.filter.Filter>), but returns an empty Optional instead of throwing an exception if "filters" is empty
or only contains nulls. |
static Filter |
or(List<Filter> filters)
Create a filter representing an OR relationship across a list of filters.
|
static boolean |
supportsSelectivityEstimation(Filter filter,
String dimension,
ColumnSelector columnSelector,
ColumnIndexSelector indexSelector) |
static Filter |
toCnf(Filter current) |
static Filter |
toFilter(DimFilter dimFilter)
Convert a DimFilter to a Filter.
|
static List<Filter> |
toFilters(List<DimFilter> dimFilters)
Convert a list of DimFilters to a list of Filters.
|
static List<Filter> |
toNormalizedOrClauses(Filter filter) |
public static List<Filter> toFilters(List<DimFilter> dimFilters)
dimFilters - list of DimFilters, should all be non-null@Nullable public static Filter toFilter(@Nullable DimFilter dimFilter)
dimFilter - dimFilterpublic static ValueMatcher makeValueMatcher(ColumnSelectorFactory columnSelectorFactory, String columnName, String value)
An implementation of this method should be able to handle dimensions of various types.
columnSelectorFactory - Selector for columns.columnName - The column to filter.value - The value to match against, represented as a String.public static ValueMatcher makeValueMatcher(ColumnSelectorFactory columnSelectorFactory, String columnName, DruidPredicateFactory predicateFactory)
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.
columnSelectorFactory - Selector for columns.columnName - The column to filter.predicateFactory - Predicate factory@Nullable public static BitmapColumnIndex makePredicateIndex(String column, ColumnIndexSelector selector, DruidPredicateFactory predicateFactory)
public static BitmapColumnIndex makeNullIndex(boolean matchesNull, ColumnIndexSelector selector)
public static ImmutableBitmap computeDefaultBitmapResults(Filter filter, ColumnIndexSelector selector)
public static boolean supportsSelectivityEstimation(Filter filter, String dimension, ColumnSelector columnSelector, ColumnIndexSelector indexSelector)
public static double estimateSelectivity(Iterator<ImmutableBitmap> bitmaps, long totalNumRows)
@Nullable public static Filter convertToCNFFromQueryContext(Query query, @Nullable Filter filter)
public static Filter toCnf(Filter current) throws CNFFilterExplosionException
CNFFilterExplosionExceptionpublic static boolean checkFilterTuningUseIndex(String columnName, ColumnIndexSelector indexSelector, @Nullable FilterTuning filterTuning)
public static Filter and(List<Filter> filters)
filters - List of filtersAndFilter.
If "filters" has a single element remaining after processing, return that filter alone.IllegalArgumentException - if "filters" is empty or only contains nullspublic static Optional<Filter> maybeAnd(List<Filter> filters)
and(java.util.List<org.apache.druid.query.filter.Filter>), but returns an empty Optional instead of throwing an exception if "filters" is empty
or only contains nulls.public static Filter or(List<Filter> filters)
filters - List of filtersOrFilter.
If "filters" has a single element remaining after processing, return that filter alone.IllegalArgumentException - if "filters" is emptypublic static Optional<Filter> maybeOr(List<Filter> filters)
or(java.util.List<org.apache.druid.query.filter.Filter>), but returns an empty Optional instead of throwing an exception if "filters" is empty
or only contains nulls.public static List<Filter> toNormalizedOrClauses(Filter filter) throws CNFFilterExplosionException
filter - the filter.CNFFilterExplosionExceptionpublic static boolean filterMatchesNull(Filter filter)
Copyright © 2011–2022 The Apache Software Foundation. All rights reserved.