Stamatis >In proposal (ii) the changes will propagate to rules
Stamatis > which need to match operands in different conventions.
The changes will propagate to almost all the rules.
For instance,
public class DrillFilterAggregateTransposeRule extends
FilterAggregateTransposeRule{
private DrillFilterAggregateTransposeRule(RelBuilderFactory relBuilderFactory) {
super(Filter.class, relBuilderFactory, Aggregate.class);
}
The intention of the rule was to transpose Drill filter and aggregate
rels, yet this rule would match any filter.
Even if a new method is added to base RelOptRule and/or
RelOptRuleOperand, then that method won't be able to tell
that the rule wants DrillConvention only.
That is why I mean not only cross-convention rules would have to be
updated, but many rules would have to be updated.
The sad thing is "same convention" is the most common case.
Regards,
Vladimir