[
https://issues.apache.org/jira/browse/CALCITE-2051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16252743#comment-16252743
]
Jesus Camacho Rodriguez edited comment on CALCITE-2051 at 11/15/17 12:22 AM:
-----------------------------------------------------------------------------
[~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) ...}} and rule {{AggregateProjectMergeRule}}. 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.
was (Author: jcamachorodriguez):
[~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)