[ https://issues.apache.org/jira/browse/CALCITE-2051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16252743#comment-16252743 ]
Jesus Camacho Rodriguez commented on CALCITE-2051: -------------------------------------------------- [~julianhyde], I have created a PR with the changes to the rules that contain that same snippet: https://github.com/apache/calcite/pull/566 We were hitting the issue in Hive with a query {{... group by (a, b) grouping sets (a) ...}}. Thus, you end up with grouping sets with a single set that is not equal to the set in the group by clause. This is possible in Hive, but I think it is not standard SQL, and I have not been able to reproduce it in Calcite. The {{induce}} method in {{Aggregate}} class takes this into account: https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/rel/core/Aggregate.java#L470 That is the reason why this change fixes the issue. > Rules using Aggregate might check for simple grouping sets incorrectly > ---------------------------------------------------------------------- > > Key: CALCITE-2051 > URL: https://issues.apache.org/jira/browse/CALCITE-2051 > Project: Calcite > Issue Type: Bug > Components: core > Reporter: Jesus Camacho Rodriguez > Assignee: Jesus Camacho Rodriguez > Priority: Critical > Fix For: 1.15.0 > > > CALCITE-1069 removed the indicator columns for Aggregate operators. In some > places, the indicator boolean check was replaced by the following check: > {{aggregate.getGroupSets().size() > 1}}. However, that check is incomplete, > it should have been replaced by {{aggregate.getGroupType() != Group.SIMPLE}}. > For instance : > https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/rel/rules/AggregateProjectMergeRule.java#L91 -- This message was sent by Atlassian JIRA (v6.4.14#64029)