Package org.apache.druid.query.filter
Class NotDimFilter
- java.lang.Object
-
- org.apache.druid.query.filter.AbstractOptimizableDimFilter
-
- org.apache.druid.query.filter.NotDimFilter
-
public class NotDimFilter extends AbstractOptimizableDimFilter implements DimFilter
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.druid.query.filter.DimFilter
DimFilter.DimFilterToStringBuilder
-
-
Constructor Summary
Constructors Constructor Description NotDimFilter(DimFilter field)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
byte[]
getCacheKey()
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.DimFilter
getField()
Set<String>
getRequiredColumns()
int
hashCode()
static NotDimFilter
of(DimFilter field)
DimFilter
optimize()
Filter
toFilter()
Returns a Filter that implements this DimFilter.String
toString()
-
Methods inherited from class org.apache.druid.query.filter.AbstractOptimizableDimFilter
toOptimizedFilter
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.druid.query.filter.DimFilter
toOptimizedFilter
-
-
-
-
Constructor Detail
-
NotDimFilter
public NotDimFilter(DimFilter field)
-
-
Method Detail
-
of
public static NotDimFilter of(DimFilter field)
-
getField
public DimFilter getField()
-
getCacheKey
public byte[] getCacheKey()
Description copied from interface:Cacheable
Get a byte array used as a cache key.- Specified by:
getCacheKey
in interfaceCacheable
- Returns:
- a cache key
-
optimize
public DimFilter optimize()
-
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.
-
getDimensionRangeSet
public 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. 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:
getDimensionRangeSet
in 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
public Set<String> getRequiredColumns()
- Specified by:
getRequiredColumns
in interfaceDimFilter
- Returns:
- a HashSet that represents all columns' name which the DimFilter required to do filter.
-
-