@Override public void visit(SubJoin subJoin) { FromItem left = subJoin.getLeft(); FromItem right = subJoin.getJoin().getRightItem(); FromItemVisitorImpl leftVisitor = new FromItemVisitorImpl(where); FromItemVisitorImpl rightVisitor = new FromItemVisitorImpl(where); left.accept(leftVisitor); right.accept(rightVisitor); relationProvider = PlanFactory.getInstance().newJoin(); ((Join) relationProvider) .setInput(leftVisitor.getRelationProvider(), rightVisitor.getRelationProvider()); }
@Override public void visit(Table table) { TableScan tableScan = PlanFactory.getInstance().newTableScan(table.getName()); relationProvider = PlanFactory.getInstance().newSelection(); ((Selection) relationProvider).setInput(tableScan, getWhere(tableScan)); }