net.sf.farrago.fennel.rel
Class CalcRelSplitter.InputToCommonExprConverter

java.lang.Object
  extended by org.eigenbase.rex.RexShuttle
      extended by net.sf.farrago.fennel.rel.CalcRelSplitter.InputToCommonExprConverter
All Implemented Interfaces:
RexVisitor<RexNode>
Enclosing class:
CalcRelSplitter

private static class CalcRelSplitter.InputToCommonExprConverter
extends RexShuttle

Shuttle which converts every reference to an input field in an expression to a reference to a common sub-expression.


Field Summary
private  int[] exprInverseOrdinals
           
private  int[] exprLevels
           
private  int[] inputExprOrdinals
           
private  int level
           
 
Constructor Summary
CalcRelSplitter.InputToCommonExprConverter(int[] exprInverseOrdinals, int[] exprLevels, int level, int[] inputExprOrdinals)
           
 
Method Summary
 RexNode visitInputRef(RexInputRef input)
           
 RexNode visitLocalRef(RexLocalRef local)
           
 
Methods inherited from class org.eigenbase.rex.RexShuttle
apply, apply, visitArray, visitCall, visitCorrelVariable, visitDynamicParam, visitFieldAccess, visitLiteral, visitOver, visitRangeRef, visitWindow
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

exprInverseOrdinals

private final int[] exprInverseOrdinals

exprLevels

private final int[] exprLevels

level

private final int level

inputExprOrdinals

private final int[] inputExprOrdinals
Constructor Detail

CalcRelSplitter.InputToCommonExprConverter

public CalcRelSplitter.InputToCommonExprConverter(int[] exprInverseOrdinals,
                                                  int[] exprLevels,
                                                  int level,
                                                  int[] inputExprOrdinals)
Method Detail

visitInputRef

public RexNode visitInputRef(RexInputRef input)
Specified by:
visitInputRef in interface RexVisitor<RexNode>
Overrides:
visitInputRef in class RexShuttle

visitLocalRef

public RexNode visitLocalRef(RexLocalRef local)
Specified by:
visitLocalRef in interface RexVisitor<RexNode>
Overrides:
visitLocalRef in class RexShuttle