@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()); }