public RESULT visit()

in tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/BasicLogicalPlanVisitor.java [52:118]


  public RESULT visit(CONTEXT context, LogicalPlan plan, LogicalPlan.QueryBlock block, LogicalNode node,
                      Stack<LogicalNode> stack)
      throws PlanningException {
    RESULT current;
    switch (node.getType()) {
      case ROOT:
        current = visitRoot(context, plan, block, (LogicalRootNode) node, stack);
        break;
      case EXPRS:
        return null;
      case PROJECTION:
        current = visitProjection(context, plan, block, (ProjectionNode) node, stack);
        break;
      case LIMIT:
        current = visitLimit(context, plan, block, (LimitNode) node, stack);
        break;
      case SORT:
        current = visitSort(context, plan, block, (SortNode) node, stack);
        break;
      case HAVING:
        current = visitHaving(context, plan, block, (HavingNode) node, stack);
        break;
      case GROUP_BY:
        current = visitGroupBy(context, plan, block, (GroupbyNode) node, stack);
        break;
      case SELECTION:
        current = visitFilter(context, plan, block, (SelectionNode) node, stack);
        break;
      case JOIN:
        current = visitJoin(context, plan, block, (JoinNode) node, stack);
        break;
      case UNION:
        current = visitUnion(context, plan, block, (UnionNode) node, stack);
        break;
      case EXCEPT:
        current = visitExcept(context, plan, block, (ExceptNode) node, stack);
        break;
      case INTERSECT:
        current = visitIntersect(context, plan, block, (IntersectNode) node, stack);
        break;
      case TABLE_SUBQUERY:
        current = visitTableSubQuery(context, plan, block, (TableSubQueryNode) node, stack);
        break;
      case SCAN:
        current = visitScan(context, plan, block, (ScanNode) node, stack);
        break;
      case PARTITIONS_SCAN:
        current = visitPartitionedTableScan(context, plan, block, (PartitionedTableScanNode) node, stack);
        break;
      case STORE:
        current = visitStoreTable(context, plan, block, (StoreTableNode) node, stack);
        break;
      case INSERT:
        current = visitInsert(context, plan, block, (InsertNode) node, stack);
        break;
      case CREATE_TABLE:
        current = visitCreateTable(context, plan, block, (CreateTableNode) node, stack);
        break;
      case DROP_TABLE:
        current = visitDropTable(context, plan, block, (DropTableNode) node, stack);
        break;
      default:
        throw new PlanningException("Unknown logical node type: " + node.getType());
    }

    return current;
  }