[
https://issues.apache.org/jira/browse/CALCITE-7907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alessandro Solimando updated CALCITE-7907:
------------------------------------------
Labels: breaking_change (was: )
> Extend UnionToDistinctRule to match Union instead of LogicalUnion
> -----------------------------------------------------------------
>
> Key: CALCITE-7907
> URL: https://issues.apache.org/jira/browse/CALCITE-7907
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Affects Versions: 1.42.0
> Reporter: Alessandro Solimando
> Assignee: Alessandro Solimando
> Priority: Minor
> Labels: breaking_change
> Fix For: 1.43.0
>
>
> _UnionToDistinctRule.Config.DEFAULT_ binds its operand to _LogicalUnion_
> ([here|https://github.com/apache/calcite/blob/71739891623e613f64898caabb50665ecdda33f2/core/src/main/java/org/apache/calcite/rel/rules/UnionToDistinctRule.java#L79-L80]),
> so _CoreRules.UNION_TO_DISTINCT_ does not fire on other _Union_ subclasses,
> and engines with their own logical _Union_ that reuse Calcite's default rule
> lists have to re-instantiate it.
> The sibling set-operation rules already match the core classes:
> * {_}UnionPullUpConstantsRule{_},
> * _UnionToValuesRule_ (next to this rule in
> {_}RelOptRules.ABSTRACT_RELATIONAL_RULES{_}),
> * {_}SetOpToFilterRule{_},
> * _PruneEmptyRules_ (CALCITE-5293),
> * _JoinUnionTransposeRule_ (CALCITE-1129, the same change on the same
> operator),
> * _ProjectSetOpTransposeRule_ (CALCITE-6495).
> This is a (small) breaking change, the default matching scope increases: it
> will be listed in the Breaking Changes section of history.md, and the
> previous behavior remains available via
> {_}UnionToDistinctRule.Config.DEFAULT.withOperandFor(LogicalUnion.class){_}.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)