Package org.apache.calcite.rex
Class RexCopier
- java.lang.Object
-
- org.apache.calcite.rex.RexShuttle
-
- org.apache.calcite.rex.RexCopier
-
- All Implemented Interfaces:
RexVisitor<RexNode>
class RexCopier extends RexShuttle
Shuttle which creates a deep copy of a Rex expression.This is useful when copying objects from one type factory or builder to another.
Due to the laziness of the author, not all Rex types are supported at present.
- See Also:
RexBuilder.copy(RexNode)
-
-
Field Summary
Fields Modifier and Type Field Description private RexBuilder
builder
-
Constructor Summary
Constructors Constructor Description RexCopier(RexBuilder builder)
Creates a RexCopier.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private RelDataType
copy(RelDataType type)
RexNode
visitCall(RexCall call)
RexNode
visitCorrelVariable(RexCorrelVariable variable)
RexNode
visitDynamicParam(RexDynamicParam dynamicParam)
RexNode
visitFieldAccess(RexFieldAccess fieldAccess)
RexNode
visitInputRef(RexInputRef inputRef)
RexNode
visitLiteral(RexLiteral literal)
RexNode
visitLocalRef(RexLocalRef localRef)
RexNode
visitOver(RexOver over)
RexNode
visitRangeRef(RexRangeRef rangeRef)
RexWindow
visitWindow(RexWindow window)
-
Methods inherited from class org.apache.calcite.rex.RexShuttle
apply, apply, apply, mutate, visitArray, visitFieldCollations, visitList, visitList, visitPatternFieldRef, visitSubQuery, visitTableInputRef
-
-
-
-
Field Detail
-
builder
private final RexBuilder builder
-
-
Constructor Detail
-
RexCopier
RexCopier(RexBuilder builder)
Creates a RexCopier.- Parameters:
builder
- Builder
-
-
Method Detail
-
copy
private RelDataType copy(RelDataType type)
-
visitOver
public RexNode visitOver(RexOver over)
- Specified by:
visitOver
in interfaceRexVisitor<RexNode>
- Overrides:
visitOver
in classRexShuttle
-
visitWindow
public RexWindow visitWindow(RexWindow window)
- Overrides:
visitWindow
in classRexShuttle
-
visitCall
public RexNode visitCall(RexCall call)
- Specified by:
visitCall
in interfaceRexVisitor<RexNode>
- Overrides:
visitCall
in classRexShuttle
-
visitCorrelVariable
public RexNode visitCorrelVariable(RexCorrelVariable variable)
- Specified by:
visitCorrelVariable
in interfaceRexVisitor<RexNode>
- Overrides:
visitCorrelVariable
in classRexShuttle
-
visitFieldAccess
public RexNode visitFieldAccess(RexFieldAccess fieldAccess)
- Specified by:
visitFieldAccess
in interfaceRexVisitor<RexNode>
- Overrides:
visitFieldAccess
in classRexShuttle
-
visitInputRef
public RexNode visitInputRef(RexInputRef inputRef)
- Specified by:
visitInputRef
in interfaceRexVisitor<RexNode>
- Overrides:
visitInputRef
in classRexShuttle
-
visitLocalRef
public RexNode visitLocalRef(RexLocalRef localRef)
- Specified by:
visitLocalRef
in interfaceRexVisitor<RexNode>
- Overrides:
visitLocalRef
in classRexShuttle
-
visitLiteral
public RexNode visitLiteral(RexLiteral literal)
- Specified by:
visitLiteral
in interfaceRexVisitor<RexNode>
- Overrides:
visitLiteral
in classRexShuttle
-
visitDynamicParam
public RexNode visitDynamicParam(RexDynamicParam dynamicParam)
- Specified by:
visitDynamicParam
in interfaceRexVisitor<RexNode>
- Overrides:
visitDynamicParam
in classRexShuttle
-
visitRangeRef
public RexNode visitRangeRef(RexRangeRef rangeRef)
- Specified by:
visitRangeRef
in interfaceRexVisitor<RexNode>
- Overrides:
visitRangeRef
in classRexShuttle
-
-