Hi Calcite devs,

CALCITE-7511 / PR #4928 fixes a `RelShuttle` dispatch gap by adding
`accept(RelShuttle)` overrides and new `visit(X)` overloads on the
interface. This is source-incompatible for direct `RelShuttle` implementors
and behavior-incompatible for `RelShuttleImpl` subclasses that worked
around the gap with `instanceof` checks.

In the review thread, @mihaibudiu <https://github.com/mihaibudiu> noted
Calcite's nominal semver would prohibit this in a minor release but that
postponing until a 2.0 isn't realistic; @xiedeyantu
<https://github.com/xiedeyantu> agreed and suggested documenting clearly in
the upgrade notes. CALCITE-7288 / PR #4620 raised similar concerns
previously.

Is the `#### Breaking Changes` section in `history.md` the right place to
surface this for library users, or do we want something more prominent
(e.g., a dedicated UPGRADING.md, per-release migration guide)?

Pointers
--------

- JIRA: https://issues.apache.org/jira/browse/CALCITE-7511
- PR:   https://github.com/apache/calcite/pull/4928
- Prior related discussion: CALCITE-7288 / PR #4620

Thanks,
Venkat

Reply via email to