@Override public List<QueryPlan> visit(SortMergeJoinPlan plan) { return Lists.newArrayList(plan.getLhsPlan(), plan.getRhsPlan()); }
@Override public Double visit(SortMergeJoinPlan plan) { Double lhsWidth = plan.getLhsPlan().accept(this); Double rhsWidth = plan.getRhsPlan().accept(this); if (lhsWidth == null || rhsWidth == null) { return null; } return join(lhsWidth, rhsWidth, plan.getJoinType()); }
@Override public Double visit(SortMergeJoinPlan plan) { Double lhsRows = plan.getLhsPlan().accept(this); Double rhsRows = plan.getRhsPlan().accept(this); if (lhsRows != null && rhsRows != null) { return join(lhsRows, rhsRows, plan.getJoinType()); } return null; }
SortMergeJoinPlan sortMergeJoinPlan=(SortMergeJoinPlan)((ClientScanPlan)queryPlan).getDelegate(); ClientScanPlan lhsOuterPlan=(ClientScanPlan)((TupleProjectionPlan)(sortMergeJoinPlan.getLhsPlan())).getDelegate(); OrderBy orderBy=lhsOuterPlan.getOrderBy(); assertTrue(orderBy.getOrderByExpressions().size() == 1); sortMergeJoinPlan=(SortMergeJoinPlan)((ClientScanPlan)queryPlan).getDelegate(); lhsOuterPlan=(ClientScanPlan)((TupleProjectionPlan)(sortMergeJoinPlan.getLhsPlan())).getDelegate(); orderBy=lhsOuterPlan.getOrderBy(); assertTrue(orderBy.getOrderByExpressions().size() == 1); sortMergeJoinPlan=(SortMergeJoinPlan)((ClientScanPlan)queryPlan).getDelegate(); lhsOuterPlan=(ClientScanPlan)((TupleProjectionPlan)(sortMergeJoinPlan.getLhsPlan())).getDelegate(); orderBy=lhsOuterPlan.getOrderBy(); assertTrue(orderBy.getOrderByExpressions().size() == 1); sortMergeJoinPlan=(SortMergeJoinPlan)((ClientScanPlan)queryPlan).getDelegate(); lhsOuterPlan=(ClientScanPlan)((TupleProjectionPlan)(sortMergeJoinPlan.getLhsPlan())).getDelegate(); orderBy=lhsOuterPlan.getOrderBy(); assertTrue(orderBy.getOrderByExpressions().size() == 1); innerAggregatePlan=(AggregatePlan)((HashJoinPlan)(((TupleProjectionPlan)sortMergeJoinPlan.getLhsPlan()).getDelegate())).getDelegate(); orderBy=innerAggregatePlan.getOrderBy(); assertTrue(orderBy.getOrderByExpressions().size() == 2);
@Override public Double visit(SortMergeJoinPlan plan) { Double lhsRows = plan.getLhsPlan().accept(this); Double rhsRows = plan.getRhsPlan().accept(this); if (lhsRows != null && rhsRows != null) { return join(lhsRows, rhsRows, plan.getJoinType()); } return null; }
@Override public Double visit(SortMergeJoinPlan plan) { Double lhsWidth = plan.getLhsPlan().accept(this); Double rhsWidth = plan.getRhsPlan().accept(this); if (lhsWidth == null || rhsWidth == null) { return null; } return join(lhsWidth, rhsWidth, plan.getJoinType()); }
@Override public Double visit(SortMergeJoinPlan plan) { Double lhsWidth = plan.getLhsPlan().accept(this); Double rhsWidth = plan.getRhsPlan().accept(this); if (lhsWidth == null || rhsWidth == null) { return null; } return join(lhsWidth, rhsWidth, plan.getJoinType()); }
@Override public Double visit(SortMergeJoinPlan plan) { Double lhsRows = plan.getLhsPlan().accept(this); Double rhsRows = plan.getRhsPlan().accept(this); if (lhsRows != null && rhsRows != null) { return join(lhsRows, rhsRows, plan.getJoinType()); } return null; }