@Override public ResultIterator iterator(ParallelScanGrouper scanGrouper) throws SQLException { return iterator(scanGrouper, null); }
@Override public ResultIterator iterator() throws SQLException { return iterator(DefaultParallelScanGrouper.getInstance()); }
@Override public ExplainPlan getExplainPlan() throws SQLException { List<String> steps = new ArrayList<String>(); steps.add("UNION ALL OVER " + this.plans.size() + " QUERIES"); ResultIterator iterator = iterator(); iterator.explain(steps); // Indent plans steps nested under union, except last client-side merge/concat step (if there is one) int offset = !orderBy.getOrderByExpressions().isEmpty() && limit != null ? 2 : limit != null ? 1 : 0; for (int i = 1 ; i < steps.size()-offset; i++) { steps.set(i, " " + steps.get(i)); } return new ExplainPlan(steps); }
@Override public ResultIterator iterator(ParallelScanGrouper scanGrouper) throws SQLException { return iterator(scanGrouper, null); }
@Override public ResultIterator iterator(ParallelScanGrouper scanGrouper) throws SQLException { return iterator(scanGrouper, null); }
@Override public ResultIterator iterator() throws SQLException { return iterator(DefaultParallelScanGrouper.getInstance()); }
@Override public ResultIterator iterator() throws SQLException { return iterator(DefaultParallelScanGrouper.getInstance()); }
@Override public ExplainPlan getExplainPlan() throws SQLException { List<String> steps = new ArrayList<String>(); steps.add("UNION ALL OVER " + this.plans.size() + " QUERIES"); ResultIterator iterator = iterator(); iterator.explain(steps); // Indent plans steps nested under union, except last client-side merge/concat step (if there is one) int offset = !orderBy.getOrderByExpressions().isEmpty() && limit != null ? 2 : limit != null ? 1 : 0; for (int i = 1 ; i < steps.size()-offset; i++) { steps.set(i, " " + steps.get(i)); } return new ExplainPlan(steps); }
@Override public ExplainPlan getExplainPlan() throws SQLException { List<String> steps = new ArrayList<String>(); steps.add("UNION ALL OVER " + this.plans.size() + " QUERIES"); ResultIterator iterator = iterator(); iterator.explain(steps); // Indent plans steps nested under union, except last client-side merge/concat step (if there is one) int offset = !orderBy.getOrderByExpressions().isEmpty() && limit != null ? 2 : limit != null ? 1 : 0; for (int i = 1 ; i < steps.size()-offset; i++) { steps.set(i, " " + steps.get(i)); } return new ExplainPlan(steps); }