> That is why I think it is not enough to enforce "single convention only".
I've sketched a draft implementation in https://github.com/apache/calcite/pull/1019 The idea there is to enforce that "convention of the first rule operand should match the convention of RelBuilderFactory". I need to figure out why the tests went red, however I pretty much like that approach: * rule definition is pretty much intact. The changes are to remove Class arguments and use simple Filter.class / Project.class. Note: I haven't updated all the rules. It is just a scratch * it should protect from cross-convention cycles Vladimir
