private class PushProjector.InputSpecialOpFinder extends RexVisitorImpl<Void>
| Modifier and Type | Field and Description |
|---|---|
private ImmutableBitSet |
leftFields |
private PushProjector.ExprCondition |
preserveExprCondition |
private List<RexNode> |
preserveLeft |
private List<RexNode> |
preserveRight |
private BitSet |
rexRefs |
private ImmutableBitSet |
rightFields |
private Strong |
strong |
private ImmutableBitSet |
strongFields |
deep| Constructor and Description |
|---|
InputSpecialOpFinder(BitSet rexRefs,
ImmutableBitSet leftFields,
ImmutableBitSet rightFields,
ImmutableBitSet strongFields,
PushProjector.ExprCondition preserveExprCondition,
List<RexNode> preserveLeft,
List<RexNode> preserveRight) |
| Modifier and Type | Method and Description |
|---|---|
private void |
addExpr(List<RexNode> exprList,
RexNode newExpr)
Adds an expression to a list if the same expression isn't already in
the list.
|
private boolean |
isStrong(ImmutableBitSet exprArgs,
RexNode call) |
private boolean |
preserve(RexNode call) |
Void |
visitCall(RexCall call) |
Void |
visitInputRef(RexInputRef inputRef) |
visitArrayAnd, visitArrayOr, visitCorrelVariable, visitDynamicParam, visitFieldAccess, visitLiteral, visitLocalRef, visitOver, visitPatternFieldRef, visitRangeRef, visitSubQuery, visitTableInputRefprivate final BitSet rexRefs
private final ImmutableBitSet leftFields
private final ImmutableBitSet rightFields
private final ImmutableBitSet strongFields
private final PushProjector.ExprCondition preserveExprCondition
private final Strong strong
InputSpecialOpFinder(BitSet rexRefs, ImmutableBitSet leftFields, ImmutableBitSet rightFields, ImmutableBitSet strongFields, PushProjector.ExprCondition preserveExprCondition, List<RexNode> preserveLeft, List<RexNode> preserveRight)
public Void visitCall(RexCall call)
visitCall in interface RexVisitor<Void>visitCall in class RexVisitorImpl<Void>private boolean isStrong(ImmutableBitSet exprArgs, RexNode call)
private boolean preserve(RexNode call)
public Void visitInputRef(RexInputRef inputRef)
visitInputRef in interface RexVisitor<Void>visitInputRef in class RexVisitorImpl<Void>Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.