Hi,

You might have seen Calcite's way to declare RelOptRule operands:
operand(Filter.class, ..., operand(Project.class, ...))
It is somewhat clean and understandable, however it is hard to scale in
terms of adding features to the operands.

It looks like builders would help there.
I've logged https://issues.apache.org/jira/browse/CALCITE-2832 for that.

Even though I would love to implement that, I find I haven't much time for
that at the moment (e.g. I haven't time to review my own PRs
<https://github.com/apache/calcite/pulls/vlsi> :) )
On the other hand I think CALCITE-2832 might be a good start for someone
interested in how rules are used and how they work, so please feel free to
pick that up, especially if you are looking for something "simple" to get
accustomed with planner rules.

Vladimir

Reply via email to