org.eigenbase.rel.rules
Class PushProjector.InputSpecialOpFinder
java.lang.Object
org.eigenbase.rex.RexVisitorImpl<Void>
org.eigenbase.rel.rules.PushProjector.InputSpecialOpFinder
- All Implemented Interfaces:
- RexVisitor<Void>
- Enclosing class:
- PushProjector
private class PushProjector.InputSpecialOpFinder
- extends RexVisitorImpl<Void>
Visitor which builds a bitmap of the inputs used by an expressions, as
well as locating expressions corresponding to special operators.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
rexRefs
private final BitSet rexRefs
leftFields
private final BitSet leftFields
rightFields
private final BitSet rightFields
preserveExprCondition
private final PushProjector.ExprCondition preserveExprCondition
preserveLeft
private final List<RexNode> preserveLeft
preserveRight
private final List<RexNode> preserveRight
PushProjector.InputSpecialOpFinder
public PushProjector.InputSpecialOpFinder(BitSet rexRefs,
BitSet leftFields,
BitSet rightFields,
PushProjector.ExprCondition preserveExprCondition,
List<RexNode> preserveLeft,
List<RexNode> preserveRight)
visitCall
public Void visitCall(RexCall call)
- Specified by:
visitCall
in interface RexVisitor<Void>
- Overrides:
visitCall
in class RexVisitorImpl<Void>
preserve
private boolean preserve(RexNode call)
visitInputRef
public Void visitInputRef(RexInputRef inputRef)
- Specified by:
visitInputRef
in interface RexVisitor<Void>
- Overrides:
visitInputRef
in class RexVisitorImpl<Void>
apply
public void apply(RexNode[] exprs,
RexNode expr)
- Applies this visitor to an array of expressions and an optional
single expression.
addExpr
private void addExpr(List<RexNode> exprList,
RexNode newExpr)
- Adds an expression to a list if the same expression isn't already in
the list. Expressions are identical if their digests are the same.
- Parameters:
exprList
- current list of expressionsnewExpr
- new expression to be added