net.sf.farrago.query
Class FarragoReduceExpressionsRule.RexReplacer

java.lang.Object
  extended by org.eigenbase.rex.RexShuttle
      extended by net.sf.farrago.query.FarragoReduceExpressionsRule.RexReplacer
All Implemented Interfaces:
RexVisitor<RexNode>
Enclosing class:
FarragoReduceExpressionsRule

private static class FarragoReduceExpressionsRule.RexReplacer
extends RexShuttle

Replaces expressions with their reductions. Note that we only have to look for RexCall, since nothing else is reducible in the first place.


Field Summary
private  List<Boolean> addCasts
           
private  List<RexNode> reducedValues
           
private  List<RexNode> reducibleExps
           
private  RexBuilder rexBuilder
           
 
Constructor Summary
FarragoReduceExpressionsRule.RexReplacer(RexBuilder rexBuilder, List<RexNode> reducibleExps, List<RexNode> reducedValues, List<Boolean> addCasts)
           
 
Method Summary
 RexNode visitCall(RexCall call)
           
 
Methods inherited from class org.eigenbase.rex.RexShuttle
apply, apply, visitArray, visitCorrelVariable, visitDynamicParam, visitFieldAccess, visitInputRef, visitLiteral, visitLocalRef, visitOver, visitRangeRef, visitWindow
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rexBuilder

private final RexBuilder rexBuilder

reducibleExps

private final List<RexNode> reducibleExps

reducedValues

private final List<RexNode> reducedValues

addCasts

private final List<Boolean> addCasts
Constructor Detail

FarragoReduceExpressionsRule.RexReplacer

FarragoReduceExpressionsRule.RexReplacer(RexBuilder rexBuilder,
                                         List<RexNode> reducibleExps,
                                         List<RexNode> reducedValues,
                                         List<Boolean> addCasts)
Method Detail

visitCall

public RexNode visitCall(RexCall call)
Specified by:
visitCall in interface RexVisitor<RexNode>
Overrides:
visitCall in class RexShuttle