@Override public Long getEstimatedRowsToScan() throws SQLException { return delegate.getEstimatedRowsToScan(); }
@Override public Long getEstimatedRowsToScan() throws SQLException { return bestPlan.getEstimatedRowsToScan(); }
@Override public Long getEstimatedRowsToScan() throws SQLException { return aggPlan.getEstimatedRowsToScan(); }
@Override public Long getEstimatedRowsToScan() throws SQLException { return aggPlan.getEstimatedRowsToScan(); }
@Override public Long getEstimatedRowsToScan() throws SQLException { return queryPlan.getEstimatedRowsToScan(); }
private void getEstimates() throws SQLException { getEstimatesCalled = true; for (QueryPlan plan : plans) { if (plan.getEstimatedBytesToScan() == null || plan.getEstimatedRowsToScan() == null || plan.getEstimateInfoTimestamp() == null) { /* * If any of the sub plans doesn't have the estimate info available, then we don't * provide estimate for the overall plan */ estimatedBytes = null; estimatedRows = null; estimateInfoTs = null; break; } else { estimatedBytes = add(estimatedBytes, plan.getEstimatedBytesToScan()); estimatedRows = add(estimatedRows, plan.getEstimatedRowsToScan()); estimateInfoTs = getMin(estimateInfoTs, plan.getEstimateInfoTimestamp()); } } } }
private void getEstimates() throws SQLException { getEstimatesCalled = true; if ((lhsPlan.getEstimatedBytesToScan() == null || rhsPlan.getEstimatedBytesToScan() == null) || (lhsPlan.getEstimatedRowsToScan() == null || rhsPlan.getEstimatedRowsToScan() == null) || (lhsPlan.getEstimateInfoTimestamp() == null || rhsPlan.getEstimateInfoTimestamp() == null)) { /* * If any of the sub plans doesn't have the estimate info available, then we don't * provide estimate for the overall plan */ estimatedBytes = null; estimatedRows = null; estimateInfoTs = null; } else { estimatedBytes = add(add(estimatedBytes, lhsPlan.getEstimatedBytesToScan()), rhsPlan.getEstimatedBytesToScan()); estimatedRows = add(add(estimatedRows, lhsPlan.getEstimatedRowsToScan()), rhsPlan.getEstimatedRowsToScan()); estimateInfoTs = getMin(lhsPlan.getEstimateInfoTimestamp(), rhsPlan.getEstimateInfoTimestamp()); } } }
private void getEstimates() throws SQLException { getEstimatesCalled = true; for (SubPlan subPlan : subPlans) { if (subPlan.getInnerPlan().getEstimatedBytesToScan() == null || subPlan.getInnerPlan().getEstimatedRowsToScan() == null || subPlan.getInnerPlan().getEstimateInfoTimestamp() == null) { /* * If any of the sub plans doesn't have the estimate info available, then we don't * provide estimate for the overall plan */ estimatedBytes = null; estimatedRows = null; estimateInfoTs = null; break; } else { estimatedBytes = add(estimatedBytes, subPlan.getInnerPlan().getEstimatedBytesToScan()); estimatedRows = add(estimatedRows, subPlan.getInnerPlan().getEstimatedRowsToScan()); estimateInfoTs = getMin(estimateInfoTs, subPlan.getInnerPlan().getEstimateInfoTimestamp()); } } } }
@Override public Long getEstimatedRowsToScan() throws SQLException { return bestPlan.getEstimatedRowsToScan(); }
@Override public Long getEstimatedRowsToScan() throws SQLException { return aggPlan.getEstimatedRowsToScan(); }
@Override public Long getEstimatedRowsToScan() throws SQLException { return aggPlan.getEstimatedRowsToScan(); }
@Override public Long getEstimatedRowsToScan() throws SQLException { return queryPlan.getEstimatedRowsToScan(); }
@Override public Long getEstimatedRowsToScan() throws SQLException { return aggPlan.getEstimatedRowsToScan(); }
@Override public Long getEstimatedRowsToScan() throws SQLException { return bestPlan.getEstimatedRowsToScan(); }
@Override public Long getEstimatedRowsToScan() throws SQLException { return delegate.getEstimatedRowsToScan(); }
@Override public Long getEstimatedRowsToScan() throws SQLException { return delegate.getEstimatedRowsToScan(); }
@Override public Long getEstimatedRowsToScan() throws SQLException { return aggPlan.getEstimatedRowsToScan(); }
@Override public Long getEstimatedRowsToScan() throws SQLException { return queryPlan.getEstimatedRowsToScan(); }
@Override public Double visit(HashJoinPlan plan) { try { QueryPlan lhsPlan = plan.getDelegate(); Long b = lhsPlan.getEstimatedRowsToScan(); if (b == null) { return null; } Double rows = filter(b.doubleValue(), stripSkipScanFilter(lhsPlan.getContext().getScan().getFilter())); JoinTableNode.JoinType[] joinTypes = plan.getJoinInfo().getJoinTypes(); HashJoinPlan.SubPlan[] subPlans = plan.getSubPlans(); for (int i = 0; i < joinTypes.length; i++) { Double rhsRows = subPlans[i].getInnerPlan().accept(this); if (rhsRows == null) { return null; } rows = join(rows, rhsRows.doubleValue(), joinTypes[i]); } if (lhsPlan instanceof AggregatePlan) { AggregatePlan aggPlan = (AggregatePlan) lhsPlan; rows = filter(aggregate(rows, aggPlan.getGroupBy()), aggPlan.getHaving()); } return limit(rows, lhsPlan.getLimit()); } catch (SQLException e) { } return null; }
@Override public Cost getCost() { try { Long r = delegate.getEstimatedRowsToScan(); Double w = delegate.accept(new AvgRowWidthVisitor()); if (r == null || w == null) {