@Deprecated // to be removed before 2.0 public static double estimateFilteredRows(RelNode child, RexNode condition) { final RelMetadataQuery mq = RelMetadataQuery.instance(); return RelMdUtil.estimateFilteredRows(child, condition, mq); }
@Deprecated // to be removed before 2.0 public static double estimateFilteredRows(RelNode child, RexProgram program) { final RelMetadataQuery mq = RelMetadataQuery.instance(); return RelMdUtil.estimateFilteredRows(child, program, mq); }
@Deprecated // to be removed before 2.0 public static double estimateFilteredRows(RelNode child, RexProgram program) { final RelMetadataQuery mq = RelMetadataQuery.instance(); return RelMdUtil.estimateFilteredRows(child, program, mq); }
@Deprecated // to be removed before 2.0 public static double estimateFilteredRows(RelNode child, RexNode condition) { final RelMetadataQuery mq = RelMetadataQuery.instance(); return RelMdUtil.estimateFilteredRows(child, condition, mq); }
@Override public double estimateRowCount(RelMetadataQuery mq) { return RelMdUtil.estimateFilteredRows(getInput(), condition, mq); }
@Override public double estimateRowCount(RelMetadataQuery mq) { return RelMdUtil.estimateFilteredRows(getInput(), program, mq); }
@Override public double estimateRowCount(RelMetadataQuery mq) { return RelMdUtil.estimateFilteredRows(getInput(), program, mq); }
@Override public double estimateRowCount(RelMetadataQuery mq) { return RelMdUtil.estimateFilteredRows(getInput(), program, mq); }
@Override public double estimateRowCount(RelMetadataQuery mq) { return RelMdUtil.estimateFilteredRows(getInput(), program, mq); }
@Override public double estimateRowCount(RelMetadataQuery mq) { return RelMdUtil.estimateFilteredRows(getInput(), condition, mq); }
public static double estimateFilteredRows(RelNode child, RexProgram program, RelMetadataQuery mq) { // convert the program's RexLocalRef condition to an expanded RexNode RexLocalRef programCondition = program.getCondition(); RexNode condition; if (programCondition == null) { condition = null; } else { condition = program.expandLocalRef(programCondition); } return estimateFilteredRows(child, condition, mq); }
public static double estimateFilteredRows(RelNode child, RexProgram program, RelMetadataQuery mq) { // convert the program's RexLocalRef condition to an expanded RexNode RexLocalRef programCondition = program.getCondition(); RexNode condition; if (programCondition == null) { condition = null; } else { condition = program.expandLocalRef(programCondition); } return estimateFilteredRows(child, condition, mq); }
public Double getRowCount(Filter rel, RelMetadataQuery mq) { return RelMdUtil.estimateFilteredRows(rel.getInput(), rel.getCondition(), mq); }
public Double getRowCount(Filter rel, RelMetadataQuery mq) { return RelMdUtil.estimateFilteredRows(rel.getInput(), rel.getCondition(), mq); }
public Double getRowCount(Calc rel, RelMetadataQuery mq) { return RelMdUtil.estimateFilteredRows(rel.getInput(), rel.getProgram(), mq); }
public Double getRowCount(Calc rel, RelMetadataQuery mq) { return RelMdUtil.estimateFilteredRows(rel.getInput(), rel.getProgram(), mq); }
private double estimateCpuCost(RelMetadataQuery mq) { RelNode child = this.getInput(); double compNum = mq.getRowCount(child); for (int i = 0; i< numConjuncts; i++) { RexNode conjFilter = RexUtil.composeConjunction(this.getCluster().getRexBuilder(), conjunctions.subList(0, i + 1), false); compNum += RelMdUtil.estimateFilteredRows(child, conjFilter, mq); } return compNum * DrillCostBase.COMPARE_CPU_COST; }
private double estimateCpuCost(RelMetadataQuery relMetadataQuery) { RelNode child = this.getInput(); final double rows = relMetadataQuery.getRowCount(child); double compNum = rows; double rowCompNum = child.getRowType().getFieldCount() * rows ; for (int i = 0; i< numConjuncts; i++) { RexNode conjFilter = RexUtil.composeConjunction(this.getCluster().getRexBuilder(), conjunctions.subList(0, i + 1), false); compNum += RelMdUtil.estimateFilteredRows(child, conjFilter, relMetadataQuery); } return compNum * DremioCost.COMPARE_CPU_COST + rowCompNum * DremioCost.COPY_COST; }