Package org.apache.calcite.plan
Class RelOptUtil.RexInputConverter
- java.lang.Object
-
- org.apache.calcite.rex.RexShuttle
-
- org.apache.calcite.plan.RelOptUtil.RexInputConverter
-
- All Implemented Interfaces:
RexVisitor<RexNode>
- Direct Known Subclasses:
PushProjector.RefAndExprConverter
- Enclosing class:
- RelOptUtil
public static class RelOptUtil.RexInputConverter extends RexShuttle
Walks an expression tree, converting the index of RexInputRefs based on some adjustment factor.
-
-
Field Summary
Fields Modifier and Type Field Description private int[]
adjustments
protected java.util.List<RelDataTypeField>
destFields
private java.util.List<RelDataTypeField>
leftDestFields
private int
nLeftDestFields
protected RexBuilder
rexBuilder
private java.util.List<RelDataTypeField>
rightDestFields
private java.util.List<RelDataTypeField>
srcFields
-
Constructor Summary
Constructors Modifier Constructor Description RexInputConverter(RexBuilder rexBuilder, java.util.List<RelDataTypeField> srcFields, int[] adjustments)
RexInputConverter(RexBuilder rexBuilder, java.util.List<RelDataTypeField> srcFields, java.util.List<RelDataTypeField> destFields, int[] adjustments)
RexInputConverter(RexBuilder rexBuilder, java.util.List<RelDataTypeField> srcFields, java.util.List<RelDataTypeField> leftDestFields, java.util.List<RelDataTypeField> rightDestFields, int[] adjustments)
private
RexInputConverter(RexBuilder rexBuilder, java.util.List<RelDataTypeField> srcFields, java.util.List<RelDataTypeField> destFields, java.util.List<RelDataTypeField> leftDestFields, java.util.List<RelDataTypeField> rightDestFields, int[] adjustments)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RexNode
visitInputRef(RexInputRef var)
-
Methods inherited from class org.apache.calcite.rex.RexShuttle
apply, apply, apply, mutate, visitArray, visitCall, visitCorrelVariable, visitDynamicParam, visitFieldAccess, visitFieldCollations, visitList, visitList, visitLiteral, visitLocalRef, visitOver, visitPatternFieldRef, visitRangeRef, visitSubQuery, visitTableInputRef, visitWindow
-
-
-
-
Field Detail
-
rexBuilder
protected final RexBuilder rexBuilder
-
srcFields
private final java.util.List<RelDataTypeField> srcFields
-
destFields
protected final java.util.List<RelDataTypeField> destFields
-
leftDestFields
private final java.util.List<RelDataTypeField> leftDestFields
-
rightDestFields
private final java.util.List<RelDataTypeField> rightDestFields
-
nLeftDestFields
private final int nLeftDestFields
-
adjustments
private final int[] adjustments
-
-
Constructor Detail
-
RexInputConverter
private RexInputConverter(RexBuilder rexBuilder, java.util.List<RelDataTypeField> srcFields, java.util.List<RelDataTypeField> destFields, java.util.List<RelDataTypeField> leftDestFields, java.util.List<RelDataTypeField> rightDestFields, int[] adjustments)
- Parameters:
rexBuilder
- builder for creating new RexInputRefssrcFields
- fields where the RexInputRefs originated from; if null, a new RexInputRef is always created, referencing the input from destFields corresponding to its current index valuedestFields
- fields that the new RexInputRefs will be referencing; if null, use the type information from the source field when creating the new RexInputRefleftDestFields
- in the case where the destination is a join, these are the fields from the left join inputrightDestFields
- in the case where the destination is a join, these are the fields from the right join inputadjustments
- the amount to adjust each field by
-
RexInputConverter
public RexInputConverter(RexBuilder rexBuilder, java.util.List<RelDataTypeField> srcFields, java.util.List<RelDataTypeField> leftDestFields, java.util.List<RelDataTypeField> rightDestFields, int[] adjustments)
-
RexInputConverter
public RexInputConverter(RexBuilder rexBuilder, java.util.List<RelDataTypeField> srcFields, java.util.List<RelDataTypeField> destFields, int[] adjustments)
-
RexInputConverter
public RexInputConverter(RexBuilder rexBuilder, java.util.List<RelDataTypeField> srcFields, int[] adjustments)
-
-
Method Detail
-
visitInputRef
public RexNode visitInputRef(RexInputRef var)
- Specified by:
visitInputRef
in interfaceRexVisitor<RexNode>
- Overrides:
visitInputRef
in classRexShuttle
-
-