Package org.apache.druid.segment.filter
Class ValueMatchers
- java.lang.Object
-
- org.apache.druid.segment.filter.ValueMatchers
-
public class ValueMatchers extends Object
Utility methods for creatingValueMatcherinstances. Mainly used byStringConstantValueMatcherFactoryandPredicateValueMatcherFactory.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static ValueMatcherallFalse()Matcher for constant 'false' condition, where rows will never be matchedstatic ValueMatcherallTrue()Matcher for constant 'true' condition, where all rows should always matchstatic ValueMatcherallUnknown()Matcher for constant 'unknown' condition, such as a column of all null values, where rows will never match unlessincludeUnknownis set to true on the match function.static ValueMatchermakeAlwaysFalseWithNullUnknownDimensionMatcher(DimensionSelector selector, boolean multiValue)Create a matcher that should always return false, except whenincludeUnknownis set, in which case only null values will be matched.static ValueMatchermakeAlwaysFalseWithNullUnknownNumericMatcher(BaseNullableColumnValueSelector selector)Create a matcher that should always return false, except whenincludeUnknownis set, in which case only null values will be matched.static ValueMatchermakeAlwaysFalseWithNullUnknownObjectMatcher(BaseObjectColumnValueSelector<?> selector)Create a matcher that should always return false, except whenincludeUnknownis set, in which case only null values will be matched.static ValueMatchermakeDoubleValueMatcher(BaseDoubleColumnValueSelector selector, double value)Creates a constant-basedValueMatcherfor a double-typed selector.static ValueMatchermakeDoubleValueMatcher(BaseDoubleColumnValueSelector selector, String value)Creates a constant-basedValueMatcherfor a double-typed selector.static ValueMatchermakeDoubleValueMatcher(BaseDoubleColumnValueSelector selector, DruidPredicateFactory predicateFactory)Creates a predicate-basedValueMatcherfor a double-typed selector.static ValueMatchermakeFloatValueMatcher(BaseFloatColumnValueSelector selector, float value)Creates a constant-basedValueMatcherfor a float-typed selector.static ValueMatchermakeFloatValueMatcher(BaseFloatColumnValueSelector selector, String value)Creates a constant-basedValueMatcherfor a float-typed selector.static ValueMatchermakeFloatValueMatcher(BaseFloatColumnValueSelector selector, DruidPredicateFactory predicateFactory)Creates a predicate-basedValueMatcherfor a float-typed selector.static ValueMatchermakeLongValueMatcher(BaseLongColumnValueSelector selector, long value)Creates a constant-basedValueMatcherfor a long-typed selector.static ValueMatchermakeLongValueMatcher(BaseLongColumnValueSelector selector, String value)Creates a constant-basedValueMatcherfor a long-typed selector.static ValueMatchermakeLongValueMatcher(BaseLongColumnValueSelector selector, DruidPredicateFactory predicateFactory)Creates a predicate-basedValueMatcherfor a long-typed selector.static ValueMatchermakeStringValueMatcher(DimensionSelector selector, String value, boolean hasMultipleValues)Creates a constant-basedValueMatcherfor a string-typed selector.static ValueMatchermakeStringValueMatcher(DimensionSelector selector, DruidPredicateFactory predicateFactory, boolean hasMultipleValues)Creates a predicate-basedValueMatcherfor a string-typed selector.static ConstantMatcherTypetoConstantMatcherTypeIfPossible(DimensionDictionarySelector selector, boolean hasMultipleValues, DruidObjectPredicate<String> predicate)If applyingpredicatetoselectorwould always return a constant, returns that constant.
-
-
-
Method Detail
-
allTrue
public static ValueMatcher allTrue()
Matcher for constant 'true' condition, where all rows should always match
-
allFalse
public static ValueMatcher allFalse()
Matcher for constant 'false' condition, where rows will never be matched
-
allUnknown
public static ValueMatcher allUnknown()
Matcher for constant 'unknown' condition, such as a column of all null values, where rows will never match unlessincludeUnknownis set to true on the match function.
-
makeStringValueMatcher
public static ValueMatcher makeStringValueMatcher(DimensionSelector selector, String value, boolean hasMultipleValues)
Creates a constant-basedValueMatcherfor a string-typed selector.- Parameters:
selector- column selectorvalue- value to matchhasMultipleValues- whether the column selector *might* have multiple values
-
makeStringValueMatcher
public static ValueMatcher makeStringValueMatcher(DimensionSelector selector, DruidPredicateFactory predicateFactory, boolean hasMultipleValues)
Creates a predicate-basedValueMatcherfor a string-typed selector.- Parameters:
selector- column selectorpredicateFactory- predicate to matchhasMultipleValues- whether the column selector *might* have multiple values
-
makeFloatValueMatcher
public static ValueMatcher makeFloatValueMatcher(BaseFloatColumnValueSelector selector, String value)
Creates a constant-basedValueMatcherfor a float-typed selector.- Parameters:
selector- column selectorvalue- value to match
-
makeFloatValueMatcher
public static ValueMatcher makeFloatValueMatcher(BaseFloatColumnValueSelector selector, float value)
Creates a constant-basedValueMatcherfor a float-typed selector.- Parameters:
selector- column selectorvalue- value to match
-
makeFloatValueMatcher
public static ValueMatcher makeFloatValueMatcher(BaseFloatColumnValueSelector selector, DruidPredicateFactory predicateFactory)
Creates a predicate-basedValueMatcherfor a float-typed selector.- Parameters:
selector- column selectorpredicateFactory- predicate to match
-
makeLongValueMatcher
public static ValueMatcher makeLongValueMatcher(BaseLongColumnValueSelector selector, String value)
Creates a constant-basedValueMatcherfor a long-typed selector.- Parameters:
selector- column selectorvalue- value to match
-
makeLongValueMatcher
public static ValueMatcher makeLongValueMatcher(BaseLongColumnValueSelector selector, long value)
Creates a constant-basedValueMatcherfor a long-typed selector.- Parameters:
selector- column selectorvalue- value to match
-
makeLongValueMatcher
public static ValueMatcher makeLongValueMatcher(BaseLongColumnValueSelector selector, DruidPredicateFactory predicateFactory)
Creates a predicate-basedValueMatcherfor a long-typed selector.- Parameters:
selector- column selectorpredicateFactory- predicate to match
-
makeDoubleValueMatcher
public static ValueMatcher makeDoubleValueMatcher(BaseDoubleColumnValueSelector selector, String value)
Creates a constant-basedValueMatcherfor a double-typed selector.- Parameters:
selector- column selectorvalue- value to match
-
makeDoubleValueMatcher
public static ValueMatcher makeDoubleValueMatcher(BaseDoubleColumnValueSelector selector, double value)
Creates a constant-basedValueMatcherfor a double-typed selector.- Parameters:
selector- column selectorvalue- value to match
-
makeDoubleValueMatcher
public static ValueMatcher makeDoubleValueMatcher(BaseDoubleColumnValueSelector selector, DruidPredicateFactory predicateFactory)
Creates a predicate-basedValueMatcherfor a double-typed selector.- Parameters:
selector- column selectorpredicateFactory- predicate to match
-
makeAlwaysFalseWithNullUnknownDimensionMatcher
public static ValueMatcher makeAlwaysFalseWithNullUnknownDimensionMatcher(DimensionSelector selector, boolean multiValue)
Create a matcher that should always return false, except whenincludeUnknownis set, in which case only null values will be matched. This is typically used when the filter should never match any actual values, but still needs to be able to report 'unknown' matches.
-
makeAlwaysFalseWithNullUnknownNumericMatcher
public static ValueMatcher makeAlwaysFalseWithNullUnknownNumericMatcher(BaseNullableColumnValueSelector selector)
Create a matcher that should always return false, except whenincludeUnknownis set, in which case only null values will be matched. This is typically used when the filter should never match any actual values, but still needs to be able to report 'unknown' matches.
-
makeAlwaysFalseWithNullUnknownObjectMatcher
public static ValueMatcher makeAlwaysFalseWithNullUnknownObjectMatcher(BaseObjectColumnValueSelector<?> selector)
Create a matcher that should always return false, except whenincludeUnknownis set, in which case only null values will be matched. This is typically used when the filter should never match any actual values, but still needs to be able to report 'unknown' matches.
-
toConstantMatcherTypeIfPossible
@Nullable public static ConstantMatcherType toConstantMatcherTypeIfPossible(DimensionDictionarySelector selector, boolean hasMultipleValues, DruidObjectPredicate<String> predicate)
If applyingpredicatetoselectorwould always return a constant, returns that constant. Otherwise, returns null. This method would have been private, except it's also used bySingleValueStringVectorValueMatcher.- Parameters:
selector- string selectorhasMultipleValues- whether the selector *might* have multiple valuespredicate- predicate to apply
-
-