org.eigenbase.rex
Class RexUtil.ForwardRefFinder

java.lang.Object
  extended by org.eigenbase.rex.RexVisitorImpl<Void>
      extended by org.eigenbase.rex.RexUtil.ForwardRefFinder
All Implemented Interfaces:
RexVisitor<Void>
Enclosing class:
RexUtil

private static class RexUtil.ForwardRefFinder
extends RexVisitorImpl<Void>

Walks over an expression and throws an exception if it finds an RexInputRef with an ordinal beyond the number of fields in the input row type, or a RexLocalRef with ordinal greater than that set using setLimit(int).


Nested Class Summary
(package private) static class RexUtil.ForwardRefFinder.IllegalForwardRefException
           
 
Field Summary
private  RelDataType inputRowType
           
private  int limit
           
 
Fields inherited from class org.eigenbase.rex.RexVisitorImpl
deep
 
Constructor Summary
RexUtil.ForwardRefFinder(RelDataType inputRowType)
           
 
Method Summary
 void setLimit(int limit)
           
 Void visitInputRef(RexInputRef inputRef)
           
 Void visitLocalRef(RexLocalRef inputRef)
           
 
Methods inherited from class org.eigenbase.rex.RexVisitorImpl
visitArrayAnd, visitArrayOr, visitCall, visitCorrelVariable, visitDynamicParam, visitFieldAccess, visitLiteral, visitOver, visitRangeRef
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

limit

private int limit

inputRowType

private final RelDataType inputRowType
Constructor Detail

RexUtil.ForwardRefFinder

public RexUtil.ForwardRefFinder(RelDataType inputRowType)
Method Detail

visitInputRef

public Void visitInputRef(RexInputRef inputRef)
Specified by:
visitInputRef in interface RexVisitor<Void>
Overrides:
visitInputRef in class RexVisitorImpl<Void>

visitLocalRef

public Void visitLocalRef(RexLocalRef inputRef)
Specified by:
visitLocalRef in interface RexVisitor<Void>
Overrides:
visitLocalRef in class RexVisitorImpl<Void>

setLimit

public void setLimit(int limit)