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;
}