Zhenghua Gao created CALCITE-1558: ------------------------------------- Summary: Wrong field mapping of top level aggregate for cases when groupKey is used in aggregate function Key: CALCITE-1558 URL: https://issues.apache.org/jira/browse/CALCITE-1558 Project: Calcite Issue Type: Bug Reporter: Zhenghua Gao Assignee: Julian Hyde
In AggregateExpandDistinctAggregatesRule.convertSingletonDistinct, if the groupKey is also used in some aggregate function, the field mappting of top level aggregate would be messy. Bad cases are: // Equivalent SQL: // SELECT deptno, COUNT(deptno), SUM(DISTINCT sal) // FROM emp // GROUP BY deptno // SELECT deptno, SUM(cnt), SUM(sal) // FROM // SELECT deptno, COUNT(deptno) AS cnt, sal // FROM emp // GROUP BY deptno, sal // GROUP BY deptno or a more complex case: // Equivalent SQL: // SELECT deptno, SUM(deptno), SUM(DISTINCT sal), MAX(deptno), MAX(comm) // FROM emp // GROUP BY deptno // SELECT deptno, SUM(sumOfInnerComm), SUM(sal), MAX(maxOfInnerDeptno), MAX(maxOfInnerComm) // FROM // SELECT deptno, sal, SUM(deptno) as sumOfInnerDeptno, MAX(deptno) as maxOfInnerDeptno, MAX(comm) AS maxOfInnerComm // FROM emp // GROUP BY deptno, sal // GROUP BY deptno I have fixed these cases, and will provide a patch later after more tests. -- This message was sent by Atlassian JIRA (v6.3.4#6332)