private static class RexImplicationChecker.InputUsageFinder extends RexVisitorImpl<java.lang.Void>
E.g: for x > 10 AND y < 20 AND x = 40, usage map is as follows:
Modifier and Type | Field and Description |
---|---|
(package private) java.util.Map<RexInputRef,RexImplicationChecker.InputRefUsage<SqlOperator,RexNode>> |
usageMap |
deep
Constructor and Description |
---|
InputUsageFinder() |
Modifier and Type | Method and Description |
---|---|
private RexImplicationChecker.InputRefUsage<SqlOperator,RexNode> |
getUsageMap(RexInputRef rex) |
private static RexNode |
removeCast(RexNode inputRef) |
private SqlOperator |
reverse(SqlOperator op) |
private void |
updateBinaryOpUsage(RexCall call) |
private void |
updateUnaryOpUsage(RexCall call) |
private void |
updateUsage(SqlOperator op,
RexInputRef inputRef,
RexNode literal) |
java.lang.Void |
visitCall(RexCall call) |
java.lang.Void |
visitInputRef(RexInputRef inputRef) |
visitArrayAnd, visitArrayOr, visitCorrelVariable, visitDynamicParam, visitFieldAccess, visitLiteral, visitLocalRef, visitOver, visitPatternFieldRef, visitRangeRef, visitSubQuery, visitTableInputRef
final java.util.Map<RexInputRef,RexImplicationChecker.InputRefUsage<SqlOperator,RexNode>> usageMap
public java.lang.Void visitInputRef(RexInputRef inputRef)
visitInputRef
in interface RexVisitor<java.lang.Void>
visitInputRef
in class RexVisitorImpl<java.lang.Void>
public java.lang.Void visitCall(RexCall call)
visitCall
in interface RexVisitor<java.lang.Void>
visitCall
in class RexVisitorImpl<java.lang.Void>
private void updateUnaryOpUsage(RexCall call)
private void updateBinaryOpUsage(RexCall call)
private SqlOperator reverse(SqlOperator op)
private void updateUsage(SqlOperator op, RexInputRef inputRef, RexNode literal)
private RexImplicationChecker.InputRefUsage<SqlOperator,RexNode> getUsageMap(RexInputRef rex)
Copyright © 2012–2019 The Apache Software Foundation. All rights reserved.