Steven>Agree with James, and that's not even including implementations in
other
Steven>codebases that use calcite (e.g. there are dozens of implementations
in
Steven>Dremio's codebase).

Can you please show RelShuttle in Dremio codebase?
I see no RelShuttle implementations:
https://github.com/dremio/dremio-oss/search?q=relshuttle

Note: RelShuttleImpl does not count since RelShuttleImpl does not really
need RelNode cooperation.
RelShuttleImpl just enumerates children of the relations, and it does not
rely on accept(..) calls.

It can do the very same thing without calling accept(this), so we can
remove  RelNode#accept(RelNode) methods,
and we can still get the same RelShuttleImpl.
It can have a series of if (... instanceof) checks or a Map#get(getClass())
or even https://github.com/forax/exotic#visitor---javadoc

Vladimir

Reply via email to