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 Type
    Method
    Description
    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 below Uncollect to the left side of the Correlate.
    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • visit

      public org.apache.calcite.rel.RelNode visit(org.apache.calcite.rel.logical.LogicalCorrelate correlate)
      Specified by:
      visit in interface org.apache.calcite.rel.RelShuttle
      Overrides:
      visit in class org.apache.calcite.rel.RelShuttleImpl
    • visit

      public org.apache.calcite.rel.RelNode visit(org.apache.calcite.rel.RelNode other)
      Specified by:
      visit in interface org.apache.calcite.rel.RelShuttle
      Overrides:
      visit in class org.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 below Uncollect to the left side of the Correlate.
      Parameters:
      relNode - tree to be rewritten
      Returns:
      rewritten rel node tree