Package org.apache.calcite.rel.rules
Class PushProjector.InputSpecialOpFinder
- java.lang.Object
-
- org.apache.calcite.rex.RexVisitorImpl<java.lang.Void>
-
- org.apache.calcite.rel.rules.PushProjector.InputSpecialOpFinder
-
- All Implemented Interfaces:
RexVisitor<java.lang.Void>
- Enclosing class:
- PushProjector
private class PushProjector.InputSpecialOpFinder extends RexVisitorImpl<java.lang.Void>
Visitor which builds a bitmap of the inputs used by an expressions, as well as locating expressions corresponding to special operators.
-
-
Field Summary
Fields Modifier and Type Field Description private ImmutableBitSet
leftFields
private PushProjector.ExprCondition
preserveExprCondition
private java.util.List<RexNode>
preserveLeft
private java.util.List<RexNode>
preserveRight
private java.util.BitSet
rexRefs
private ImmutableBitSet
rightFields
private Strong
strong
private ImmutableBitSet
strongFields
-
Fields inherited from class org.apache.calcite.rex.RexVisitorImpl
deep
-
-
Constructor Summary
Constructors Constructor Description InputSpecialOpFinder(java.util.BitSet rexRefs, ImmutableBitSet leftFields, ImmutableBitSet rightFields, ImmutableBitSet strongFields, PushProjector.ExprCondition preserveExprCondition, java.util.List<RexNode> preserveLeft, java.util.List<RexNode> preserveRight)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
isStrong(ImmutableBitSet exprArgs, RexNode call)
private boolean
preserve(RexNode call)
java.lang.Void
visitCall(RexCall call)
java.lang.Void
visitInputRef(RexInputRef inputRef)
-
Methods inherited from class org.apache.calcite.rex.RexVisitorImpl
visitArrayAnd, visitArrayOr, visitCorrelVariable, visitDynamicParam, visitFieldAccess, visitLiteral, visitLocalRef, visitOver, visitPatternFieldRef, visitRangeRef, visitSubQuery, visitTableInputRef
-
-
-
-
Field Detail
-
rexRefs
private final java.util.BitSet rexRefs
-
leftFields
private final ImmutableBitSet leftFields
-
rightFields
private final ImmutableBitSet rightFields
-
strongFields
private final ImmutableBitSet strongFields
-
preserveExprCondition
private final PushProjector.ExprCondition preserveExprCondition
-
preserveLeft
private final java.util.List<RexNode> preserveLeft
-
preserveRight
private final java.util.List<RexNode> preserveRight
-
strong
private final Strong strong
-
-
Constructor Detail
-
InputSpecialOpFinder
InputSpecialOpFinder(java.util.BitSet rexRefs, ImmutableBitSet leftFields, ImmutableBitSet rightFields, ImmutableBitSet strongFields, PushProjector.ExprCondition preserveExprCondition, java.util.List<RexNode> preserveLeft, java.util.List<RexNode> preserveRight)
-
-
Method Detail
-
visitCall
public java.lang.Void visitCall(RexCall call)
- Specified by:
visitCall
in interfaceRexVisitor<java.lang.Void>
- Overrides:
visitCall
in classRexVisitorImpl<java.lang.Void>
-
isStrong
private boolean isStrong(ImmutableBitSet exprArgs, RexNode call)
-
preserve
private boolean preserve(RexNode call)
-
visitInputRef
public java.lang.Void visitInputRef(RexInputRef inputRef)
- Specified by:
visitInputRef
in interfaceRexVisitor<java.lang.Void>
- Overrides:
visitInputRef
in classRexVisitorImpl<java.lang.Void>
-
-