/** * Since the grouping aggregate will be expanded by {@link org.apache.kylin.query.optrule.AggregateMultipleExpandRule}, * made the cost of grouping aggregate more expensive to use the expanded aggregates */ @Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { RelOptCost cost; if (getGroupType() == Group.SIMPLE) { cost = super.computeSelfCost(planner, mq).multiplyBy(.05); } else { cost = super.computeSelfCost(planner, mq).multiplyBy(.05).plus(planner.getCost(getInput(), mq)) .multiplyBy(groupSets.size() * 1.5); } return cost; }
@Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { return super.computeSelfCost(planner, mq).multiplyBy(0.1); }
/** * Since the grouping aggregate will be expanded by {@link org.apache.kylin.query.optrule.AggregateMultipleExpandRule}, * made the cost of grouping aggregate more expensive to use the expanded aggregates */ @Override public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { RelOptCost cost; if (getGroupType() == Group.SIMPLE) { cost = super.computeSelfCost(planner, mq).multiplyBy(.05); } else { cost = super.computeSelfCost(planner, mq).multiplyBy(.05).plus(planner.getCost(getInput(), mq)) .multiplyBy(groupSets.size() * 1.5); } return cost; }
return super.computeSelfCost(planner, mq).multiplyBy(.1);