@Override public RelOptCost computeSelfCost(final RelOptPlanner planner, final RelMetadataQuery mq) { return planner.getCostFactory().makeCost(rels.stream().mapToDouble(mq::getRowCount).sum(), 0, 0); }
@Override public RelOptCost computeSelfCost(final RelOptPlanner planner, final RelMetadataQuery mq) { return planner.getCostFactory().makeCost(mq.getRowCount(sourceRel), 0, 0).multiplyBy(10); } }
@Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { RelOptCost relOptCost = super.computeSelfCost(planner, mq).multiplyBy(0.05); return planner.getCostFactory().makeCost(relOptCost.getRows(), 0, 0); }
/** * Since the project under aggregate maybe reduce expressions by {@link org.apache.kylin.query.optrule.AggregateProjectReduceRule}, * consider the count of expressions into cost, the reduced project will be used. * * Made RexOver much more expensive so we can transform into {@link org.apache.kylin.query.relnode.OLAPWindowRel} * by rules in {@link org.apache.calcite.rel.rules.ProjectToWindowRule} */ @Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { boolean hasRexOver = RexOver.containsOver(getProjects(), null); RelOptCost relOptCost = super.computeSelfCost(planner, mq).multiplyBy(.05) .multiplyBy(getProjects().size() * (hasRexOver ? 50 : 1)) .plus(planner.getCostFactory().makeCost(0.1 * caseCount, 0, 0)); return planner.getCostFactory().makeCost(relOptCost.getRows(), 0, 0); }
return planner.getCostFactory().makeCost(cost, 0, 0);
Preconditions.checkArgument(primaryTableGroupScan instanceof DbGroupScan); DbGroupScan dbGroupScan = (DbGroupScan) primaryTableGroupScan; DrillCostFactory costFactory = (DrillCostFactory)planner.getCostFactory(); double totalRows = indexProps.getTotalRows(); double leadRowCount = indexProps.getLeadingSelectivity() * totalRows;
@Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { return planner.getCostFactory().makeInfiniteCost(); } }
@Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { // We always "build" the double rowCount = mq.getRowCount(this); return planner.getCostFactory().makeCost(rowCount, 0, 0); }
@Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { double dRows = mq.getRowCount(this); // Assume CPU is negligible since values are precomputed. double dCpu = 1; double dIo = 0; return planner.getCostFactory().makeCost(dRows, dCpu, dIo); }
@Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { // We always "build" the double rowCount = mq.getRowCount(this); return planner.getCostFactory().makeCost(rowCount, 0, 0); }
@Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { // REVIEW jvs 9-Apr-2006: Just for now... double rowCount = mq.getRowCount(this); return planner.getCostFactory().makeCost(rowCount, 0, 0); }
@Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { double dRows = mq.getRowCount(getInput()); double dCpu = dRows * exps.size(); double dIo = 0; return planner.getCostFactory().makeCost(dRows, dCpu, dIo); }
public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { if (needsScript && !scriptsEnabled) { return planner.getCostFactory().makeInfiniteCost(); } return super.computeSelfCost(planner, mq).multiplyBy(0.1D); }
@Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { double dRows = mq.getRowCount(getInput()); double dCpu = dRows; double dIo = 0; return planner.getCostFactory().makeCost(dRows, dCpu, dIo); }
public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { return planner.getCostFactory().makeCost(1, 1, 1); } }
public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { return planner.getCostFactory().makeCost(1, 1, 1); } }
@Override public RelOptCost computeSelfCost(final RelOptPlanner planner, final RelMetadataQuery mq) { // Check if the data source requires ScanCrels to be converted to other node types. // This is enforced by making the cost infinite. if (pluginId.getCapabilities().getCapability(SourceCapabilities.TREAT_CALCITE_SCAN_COST_AS_INFINITE)) { return planner.getCostFactory().makeInfiniteCost(); } return super.computeSelfCost(planner, mq); }
@Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { double dRows = mq.getRowCount(this); double dCpu = mq.getRowCount(getInput()); double dIo = 0; return planner.getCostFactory().makeCost(dRows, dCpu, dIo); }
@Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { // Higher cost if rows are wider discourages pushing a project through an // exchange. double rowCount = mq.getRowCount(this); double bytesPerRow = getRowType().getFieldCount() * 4; return planner.getCostFactory().makeCost( Util.nLogN(rowCount) * bytesPerRow, rowCount, 0); }
@Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { return planner.getCostFactory().makeCost(100, 100, 100) .multiplyBy(1.0 / nodesBelowCount); }