Package org.apache.druid.query.filter
Class NotDimFilter
java.lang.Object
org.apache.druid.query.filter.AbstractOptimizableDimFilter
org.apache.druid.query.filter.NotDimFilter
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.druid.query.filter.DimFilter
DimFilter.DimFilterToStringBuilder -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanbyte[]Get a byte array used as a cache key.com.google.common.collect.RangeSet<String> getDimensionRangeSet(String dimension) There are some special cases involving null that require special casing for And and Or instead of simply taking the complement Example 1 : "NOT ( [0,INF) OR null)" The inside of NOT would evaluate to null, and the complement would also be null.getField()inthashCode()static NotDimFilteroptimize(boolean mayIncludeUnknown) Returns an optimized version of this filter.toFilter()Returns a Filter that implements this DimFilter.toString()Methods inherited from class org.apache.druid.query.filter.AbstractOptimizableDimFilter
toOptimizedFilterMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.druid.query.filter.DimFilter
toOptimizedFilter
-
Constructor Details
-
NotDimFilter
-
-
Method Details
-
of
-
getField
-
getCacheKey
public byte[] getCacheKey()Description copied from interface:CacheableGet a byte array used as a cache key.- Specified by:
getCacheKeyin interfaceCacheable- Returns:
- bytes to be used as cache key - or null if this object should not be cached.
-
optimize
Description copied from interface:DimFilterReturns an optimized version of this filter.- Specified by:
optimizein interfaceDimFilter- Overrides:
optimizein classAbstractOptimizableDimFilter- Parameters:
mayIncludeUnknown- whether the optimized filter may need to operate in "includeUnknown" mode.
-
toFilter
Description copied from interface:DimFilterReturns 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. -
getDimensionRangeSet
There are some special cases involving null that require special casing for And and Or instead of simply taking the complement Example 1 : "NOT ( [0,INF) OR null)" The inside of NOT would evaluate to null, and the complement would also be null. However, by breaking the NOT, this statement is "NOT([0,INF)) AND NOT(null)", which means it should actually evaluate to (-INF, 0). Example 2 : "NOT ( [0,INF) AND null )" The inside of NOT would evaluate to [0,INF), and the complement would be (-INF, 0). However the statement is actually "NOT([0,INF)) OR NOT(null)", and it should be evaluated to null.- Specified by:
getDimensionRangeSetin interfaceDimFilter- 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.
-
getRequiredColumns
- Specified by:
getRequiredColumnsin interfaceDimFilter- Returns:
- a HashSet that represents all columns' name which the DimFilter required to do filter.
-
equals
-
hashCode
public int hashCode() -
toString
-