Package org.apache.calcite.rex
Class RexUtil.ForwardRefFinder
- java.lang.Object
-
- org.apache.calcite.rex.RexVisitorImpl<java.lang.Void>
-
- org.apache.calcite.rex.RexUtil.ForwardRefFinder
-
- All Implemented Interfaces:
RexVisitor<java.lang.Void>
- Enclosing class:
- RexUtil
private static class RexUtil.ForwardRefFinder extends RexVisitorImpl<java.lang.Void>
Walks over an expression and throws an exception if it finds anRexInputRef
with an ordinal beyond the number of fields in the input row type, or aRexLocalRef
with ordinal greater than that set usingsetLimit(int)
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
RexUtil.ForwardRefFinder.IllegalForwardRefException
Thrown to abort a visit when we find an illegal forward reference.
-
Field Summary
Fields Modifier and Type Field Description private RelDataType
inputRowType
private int
limit
-
Fields inherited from class org.apache.calcite.rex.RexVisitorImpl
deep
-
-
Constructor Summary
Constructors Constructor Description ForwardRefFinder(RelDataType inputRowType)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
setLimit(int limit)
java.lang.Void
visitInputRef(RexInputRef inputRef)
java.lang.Void
visitLocalRef(RexLocalRef inputRef)
-
Methods inherited from class org.apache.calcite.rex.RexVisitorImpl
visitArrayAnd, visitArrayOr, visitCall, visitCorrelVariable, visitDynamicParam, visitFieldAccess, visitLiteral, visitOver, visitPatternFieldRef, visitRangeRef, visitSubQuery, visitTableInputRef
-
-
-
-
Field Detail
-
limit
private int limit
-
inputRowType
private final RelDataType inputRowType
-
-
Constructor Detail
-
ForwardRefFinder
ForwardRefFinder(RelDataType inputRowType)
-
-
Method Detail
-
visitInputRef
public java.lang.Void visitInputRef(RexInputRef inputRef)
- Specified by:
visitInputRef
in interfaceRexVisitor<java.lang.Void>
- Overrides:
visitInputRef
in classRexVisitorImpl<java.lang.Void>
-
visitLocalRef
public java.lang.Void visitLocalRef(RexLocalRef inputRef)
- Specified by:
visitLocalRef
in interfaceRexVisitor<java.lang.Void>
- Overrides:
visitLocalRef
in classRexVisitorImpl<java.lang.Void>
-
setLimit
public void setLimit(int limit)
-
-