Package org.apache.druid.query.filter
Class AbstractOptimizableDimFilter
- java.lang.Object
-
- org.apache.druid.query.filter.AbstractOptimizableDimFilter
-
- Direct Known Subclasses:
AndDimFilter,ArrayContainsElementFilter,BoundDimFilter,ColumnComparisonDimFilter,EqualityFilter,ExpressionDimFilter,ExtractionDimFilter,FalseDimFilter,InDimFilter,IntervalDimFilter,IsBooleanDimFilter,JavaScriptDimFilter,LikeDimFilter,NotDimFilter,NullFilter,OrDimFilter,RangeFilter,RegexDimFilter,SearchQueryDimFilter,SelectorDimFilter,SpatialDimFilter,TrueDimFilter,TypedInFilter
public abstract class AbstractOptimizableDimFilter extends Object implements DimFilter
Base class for mostDimFilter. This abstract class provides a default implementation oftoOptimizedFilter(boolean)that uses a memoized supplier relying onoptimize(boolean)andDimFilter.toFilter(). This fulfils the expectation thattoOptimizedFilter(boolean)returns the same instance when called multiple times.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.druid.query.filter.DimFilter
DimFilter.DimFilterToStringBuilder
-
-
Constructor Summary
Constructors Constructor Description AbstractOptimizableDimFilter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DimFilteroptimize(boolean mayIncludeUnknown)Returns an optimized version of this filter.FiltertoOptimizedFilter(boolean mayIncludeUnknown)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.druid.java.util.common.Cacheable
getCacheKey
-
Methods inherited from interface org.apache.druid.query.filter.DimFilter
getDimensionRangeSet, getRequiredColumns, toFilter
-
-
-
-
Method Detail
-
optimize
public DimFilter optimize(boolean mayIncludeUnknown)
Description copied from interface:DimFilterReturns an optimized version of this filter.- Specified by:
optimizein interfaceDimFilter- Parameters:
mayIncludeUnknown- whether the optimized filter may need to operate in "includeUnknown" mode. SeeNullHandling.useThreeValueLogic().
-
toOptimizedFilter
public final Filter toOptimizedFilter(boolean mayIncludeUnknown)
- Specified by:
toOptimizedFilterin interfaceDimFilter- Parameters:
mayIncludeUnknown- whether the optimized filter may need to operate in "includeUnknown" mode. SeeNullHandling.useThreeValueLogic().- Returns:
- Return a Filter that implements this DimFilter, after applying optimizations to this DimFilter.
A typical implementation will return the result of `optimize().toFilter()`
See abstract base class
AbstractOptimizableDimFilterfor a common implementation shared by current DimFilters. The Filter returned by this method across multiple calls must be the same object: parts of the query stack compare Filters, and returning the same object allows these checks to avoid deep comparisons. (seefor an example
-
-