Class ComplexUnnestVisitor
java.lang.Object
org.apache.calcite.rel.RelShuttleImpl
org.apache.drill.exec.planner.sql.handlers.ComplexUnnestVisitor
- All Implemented Interfaces:
org.apache.calcite.rel.RelShuttle
public class ComplexUnnestVisitor
extends org.apache.calcite.rel.RelShuttleImpl
Visitor that moves non-
RexFieldAccess
rex node from project below Uncollect
to the left side of the Correlate
.-
Field Summary
Fields inherited from class org.apache.calcite.rel.RelShuttleImpl
stack
-
Method Summary
Modifier and TypeMethodDescriptionstatic org.apache.calcite.rel.RelNode
rewriteUnnestWithComplexExprs
(org.apache.calcite.rel.RelNode relNode) Rewrites rel node tree and moves non-RexFieldAccess
rex node from the project belowUncollect
to the left side of theCorrelate
.org.apache.calcite.rel.RelNode
visit
(org.apache.calcite.rel.core.Uncollect uncollect) org.apache.calcite.rel.RelNode
visit
(org.apache.calcite.rel.logical.LogicalCorrelate correlate) org.apache.calcite.rel.RelNode
visit
(org.apache.calcite.rel.RelNode other) Methods inherited from class org.apache.calcite.rel.RelShuttleImpl
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitChild, visitChildren
-
Method Details
-
visit
public org.apache.calcite.rel.RelNode visit(org.apache.calcite.rel.logical.LogicalCorrelate correlate) - Specified by:
visit
in interfaceorg.apache.calcite.rel.RelShuttle
- Overrides:
visit
in classorg.apache.calcite.rel.RelShuttleImpl
-
visit
public org.apache.calcite.rel.RelNode visit(org.apache.calcite.rel.RelNode other) - Specified by:
visit
in interfaceorg.apache.calcite.rel.RelShuttle
- Overrides:
visit
in classorg.apache.calcite.rel.RelShuttleImpl
-
visit
public org.apache.calcite.rel.RelNode visit(org.apache.calcite.rel.core.Uncollect uncollect) -
rewriteUnnestWithComplexExprs
public static org.apache.calcite.rel.RelNode rewriteUnnestWithComplexExprs(org.apache.calcite.rel.RelNode relNode) Rewrites rel node tree and moves non-RexFieldAccess
rex node from the project belowUncollect
to the left side of theCorrelate
.- Parameters:
relNode
- tree to be rewritten- Returns:
- rewritten rel node tree
-