Package org.apache.drill.exec.expr
Class FilterBuilder
java.lang.Object
org.apache.drill.common.expression.visitors.AbstractExprVisitor<LogicalExpression,Set<LogicalExpression>,RuntimeException>
org.apache.drill.exec.expr.FilterBuilder
- All Implemented Interfaces:
ExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
public class FilterBuilder
extends AbstractExprVisitor<LogicalExpression,Set<LogicalExpression>,RuntimeException>
A visitor which visits a materialized logical expression, and build
FilterPredicate If a visitXXX method returns null, that means the
corresponding filter branch is not qualified for push down.
-
Method Summary
Modifier and TypeMethodDescriptionstatic FilterPredicate<?> buildFilterPredicate(LogicalExpression expr, Set<LogicalExpression> constantBoundaries, UdfUtilities udfUtilities, boolean omitUnsupportedExprs) visitBooleanConstant(ValueExpressions.BooleanExpression booleanExpression, Set<LogicalExpression> value) visitBooleanOperator(BooleanOperator op, Set<LogicalExpression> value) visitDateConstant(ValueExpressions.DateExpression dateExpr, Set<LogicalExpression> value) visitDoubleConstant(ValueExpressions.DoubleExpression dExpr, Set<LogicalExpression> value) visitFloatConstant(ValueExpressions.FloatExpression fExpr, Set<LogicalExpression> value) visitFunctionHolderExpression(FunctionHolderExpression funcHolderExpr, Set<LogicalExpression> value) visitIntConstant(ValueExpressions.IntExpression intExpr, Set<LogicalExpression> value) visitLongConstant(ValueExpressions.LongExpression intExpr, Set<LogicalExpression> value) visitQuotedStringConstant(ValueExpressions.QuotedString quotedString, Set<LogicalExpression> value) visitTimeConstant(ValueExpressions.TimeExpression timeExpr, Set<LogicalExpression> value) visitTypedFieldExpr(TypedFieldExpr typedFieldExpr, Set<LogicalExpression> value) visitUnknown(LogicalExpression e, Set<LogicalExpression> value) Handles implementation-specific expressions not known to the visitor structure.visitVarDecimalConstant(ValueExpressions.VarDecimalExpression decExpr, Set<LogicalExpression> value) Methods inherited from class org.apache.drill.common.expression.visitors.AbstractExprVisitor
visitAnyValueExpression, visitCastExpression, visitConvertExpression, visitDecimal18Constant, visitDecimal28Constant, visitDecimal38Constant, visitDecimal9Constant, visitFunctionCall, visitIfExpression, visitIntervalDayConstant, visitIntervalYearConstant, visitNullConstant, visitNullExpression, visitParameter, visitSchemaPath
-
Method Details
-
buildFilterPredicate
public static FilterPredicate<?> buildFilterPredicate(LogicalExpression expr, Set<LogicalExpression> constantBoundaries, UdfUtilities udfUtilities, boolean omitUnsupportedExprs) - Parameters:
expr- materialized filter expressionconstantBoundaries- set of constant expressionsudfUtilities- udf utilities- Returns:
- metadata filter predicate
-
visitUnknown
Description copied from class:AbstractExprVisitorHandles implementation-specific expressions not known to the visitor structure. Since there are no "visitFoo" methods for these "unknown" expressions, subclassses should use the functionally-equivalentinstanceofapproach to parse out these "unknown" expressions.- Specified by:
visitUnknownin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitUnknownin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-
visitTypedFieldExpr
public LogicalExpression visitTypedFieldExpr(TypedFieldExpr typedFieldExpr, Set<LogicalExpression> value) - Specified by:
visitTypedFieldExprin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitTypedFieldExprin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-
visitIntConstant
public LogicalExpression visitIntConstant(ValueExpressions.IntExpression intExpr, Set<LogicalExpression> value) - Specified by:
visitIntConstantin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitIntConstantin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-
visitDoubleConstant
public LogicalExpression visitDoubleConstant(ValueExpressions.DoubleExpression dExpr, Set<LogicalExpression> value) - Specified by:
visitDoubleConstantin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitDoubleConstantin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-
visitFloatConstant
public LogicalExpression visitFloatConstant(ValueExpressions.FloatExpression fExpr, Set<LogicalExpression> value) - Specified by:
visitFloatConstantin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitFloatConstantin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-
visitLongConstant
public LogicalExpression visitLongConstant(ValueExpressions.LongExpression intExpr, Set<LogicalExpression> value) - Specified by:
visitLongConstantin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitLongConstantin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-
visitVarDecimalConstant
public LogicalExpression visitVarDecimalConstant(ValueExpressions.VarDecimalExpression decExpr, Set<LogicalExpression> value) - Specified by:
visitVarDecimalConstantin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitVarDecimalConstantin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-
visitDateConstant
public LogicalExpression visitDateConstant(ValueExpressions.DateExpression dateExpr, Set<LogicalExpression> value) - Specified by:
visitDateConstantin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitDateConstantin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-
visitTimeStampConstant
public LogicalExpression visitTimeStampConstant(ValueExpressions.TimeStampExpression tsExpr, Set<LogicalExpression> value) - Specified by:
visitTimeStampConstantin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitTimeStampConstantin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-
visitTimeConstant
public LogicalExpression visitTimeConstant(ValueExpressions.TimeExpression timeExpr, Set<LogicalExpression> value) - Specified by:
visitTimeConstantin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitTimeConstantin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-
visitBooleanConstant
public LogicalExpression visitBooleanConstant(ValueExpressions.BooleanExpression booleanExpression, Set<LogicalExpression> value) - Specified by:
visitBooleanConstantin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitBooleanConstantin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-
visitQuotedStringConstant
public LogicalExpression visitQuotedStringConstant(ValueExpressions.QuotedString quotedString, Set<LogicalExpression> value) - Specified by:
visitQuotedStringConstantin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitQuotedStringConstantin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-
visitBooleanOperator
- Specified by:
visitBooleanOperatorin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitBooleanOperatorin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-
visitFunctionHolderExpression
public LogicalExpression visitFunctionHolderExpression(FunctionHolderExpression funcHolderExpr, Set<LogicalExpression> value) - Specified by:
visitFunctionHolderExpressionin interfaceExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException> - Overrides:
visitFunctionHolderExpressionin classAbstractExprVisitor<LogicalExpression,Set<LogicalExpression>, RuntimeException>
-