protected static class ReduceExpressionsRule.ReducibleExprLocator extends RexVisitorImpl<Void>
| Modifier and Type | Class and Description |
|---|---|
(package private) static class |
ReduceExpressionsRule.ReducibleExprLocator.Constancy
Whether an expression is constant, and if so, whether it can be
reduced to a simpler constant.
|
| Modifier and Type | Field and Description |
|---|---|
private List<Boolean> |
addCasts |
private com.google.common.collect.ImmutableMap<RexNode,RexNode> |
constants |
private List<RexNode> |
constExprs |
private Deque<SqlOperator> |
parentCallTypeStack |
private List<RexNode> |
removableCasts |
private List<ReduceExpressionsRule.ReducibleExprLocator.Constancy> |
stack |
private RelDataTypeFactory |
typeFactory |
deep| Constructor and Description |
|---|
ReducibleExprLocator(RelDataTypeFactory typeFactory,
com.google.common.collect.ImmutableMap<RexNode,RexNode> constants,
List<RexNode> constExprs,
List<Boolean> addCasts,
List<RexNode> removableCasts) |
| Modifier and Type | Method and Description |
|---|---|
private void |
addResult(RexNode exp) |
void |
analyze(RexNode exp) |
private void |
analyzeCall(RexCall call,
ReduceExpressionsRule.ReducibleExprLocator.Constancy callConstancy) |
private Boolean |
isUdf(SqlOperator operator) |
private Void |
pushVariable() |
private void |
reduceCasts(RexCall outerCast) |
Void |
visitCall(RexCall call) |
Void |
visitCorrelVariable(RexCorrelVariable variable) |
Void |
visitDynamicParam(RexDynamicParam dynamicParam) |
Void |
visitFieldAccess(RexFieldAccess fieldAccess) |
Void |
visitInputRef(RexInputRef inputRef) |
Void |
visitLiteral(RexLiteral literal) |
Void |
visitOver(RexOver over) |
Void |
visitRangeRef(RexRangeRef rangeRef) |
Void |
visitSubQuery(RexSubQuery subQuery) |
visitArrayAnd, visitArrayOr, visitLocalRef, visitPatternFieldRef, visitTableInputRefprivate final RelDataTypeFactory typeFactory
private final List<ReduceExpressionsRule.ReducibleExprLocator.Constancy> stack
private final Deque<SqlOperator> parentCallTypeStack
public void analyze(RexNode exp)
private Void pushVariable()
private void addResult(RexNode exp)
private Boolean isUdf(SqlOperator operator)
public Void visitInputRef(RexInputRef inputRef)
visitInputRef in interface RexVisitor<Void>visitInputRef in class RexVisitorImpl<Void>public Void visitLiteral(RexLiteral literal)
visitLiteral in interface RexVisitor<Void>visitLiteral in class RexVisitorImpl<Void>public Void visitOver(RexOver over)
visitOver in interface RexVisitor<Void>visitOver in class RexVisitorImpl<Void>public Void visitCorrelVariable(RexCorrelVariable variable)
visitCorrelVariable in interface RexVisitor<Void>visitCorrelVariable in class RexVisitorImpl<Void>public Void visitCall(RexCall call)
visitCall in interface RexVisitor<Void>visitCall in class RexVisitorImpl<Void>public Void visitSubQuery(RexSubQuery subQuery)
visitSubQuery in interface RexVisitor<Void>visitSubQuery in class RexVisitorImpl<Void>private void analyzeCall(RexCall call, ReduceExpressionsRule.ReducibleExprLocator.Constancy callConstancy)
private void reduceCasts(RexCall outerCast)
public Void visitDynamicParam(RexDynamicParam dynamicParam)
visitDynamicParam in interface RexVisitor<Void>visitDynamicParam in class RexVisitorImpl<Void>public Void visitRangeRef(RexRangeRef rangeRef)
visitRangeRef in interface RexVisitor<Void>visitRangeRef in class RexVisitorImpl<Void>public Void visitFieldAccess(RexFieldAccess fieldAccess)
visitFieldAccess in interface RexVisitor<Void>visitFieldAccess in class RexVisitorImpl<Void>Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.