private static class RexImplicationChecker.InputUsageFinder extends RexVisitorImpl<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) 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) |
Void |
visitCall(RexCall call) |
Void |
visitInputRef(RexInputRef inputRef) |
visitArrayAnd, visitArrayOr, visitCorrelVariable, visitDynamicParam, visitFieldAccess, visitLiteral, visitLocalRef, visitOver, visitPatternFieldRef, visitRangeRef, visitSubQuery, visitTableInputReffinal Map<RexInputRef,RexImplicationChecker.InputRefUsage<SqlOperator,RexNode>> usageMap
public Void visitInputRef(RexInputRef inputRef)
visitInputRef in interface RexVisitor<Void>visitInputRef in class RexVisitorImpl<Void>public Void visitCall(RexCall call)
visitCall in interface RexVisitor<Void>visitCall in class RexVisitorImpl<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–2018 The Apache Software Foundation. All rights reserved.