You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by hy...@apache.org on 2019/07/09 05:19:42 UTC
[calcite] branch master updated: [CALCITE-3160] Failed to
materialize when the aggregate function uses group key (DonnyZone)
This is an automated email from the ASF dual-hosted git repository.
hyuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/master by this push:
new 6abf37a [CALCITE-3160] Failed to materialize when the aggregate function uses group key (DonnyZone)
6abf37a is described below
commit 6abf37a83b71568c3aa6d757913ab871fa15f837
Author: wellfengzhu <we...@gmail.com>
AuthorDate: Wed Jul 3 15:26:41 2019 +0800
[CALCITE-3160] Failed to materialize when the aggregate function uses group key (DonnyZone)
---
.../java/org/apache/calcite/plan/SubstitutionVisitor.java | 2 +-
.../java/org/apache/calcite/test/MaterializationTest.java | 13 +++++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java b/core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java
index 9dc77ec..c832d55 100644
--- a/core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java
+++ b/core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java
@@ -973,7 +973,7 @@ public class SubstitutionVisitor {
public UnifyResult apply(UnifyRuleCall call) {
if (call.query.equals(call.target)) {
- return call.result(call.query);
+ return call.result(call.target);
}
return null;
}
diff --git a/core/src/test/java/org/apache/calcite/test/MaterializationTest.java b/core/src/test/java/org/apache/calcite/test/MaterializationTest.java
index 7064254..ad87c8d 100644
--- a/core/src/test/java/org/apache/calcite/test/MaterializationTest.java
+++ b/core/src/test/java/org/apache/calcite/test/MaterializationTest.java
@@ -584,6 +584,19 @@ public class MaterializationTest {
+ " EnumerableTableScan(table=[[hr, m0]])"));
}
+ @Test public void testAggregateGroupSetsRollUp2() {
+ checkMaterialize(
+ "select \"empid\", \"deptno\", count(*) as c, sum(\"empid\") as s from \"emps\" "
+ + "group by \"empid\", \"deptno\"",
+ "select count(*) + 1 as c, \"deptno\" from \"emps\" group by cube(\"empid\",\"deptno\")",
+ HR_FKUK_MODEL,
+ CalciteAssert.checkResultContains(
+ "EnumerableCalc(expr#0..2=[{inputs}], expr#3=[1], "
+ + "expr#4=[+($t2, $t3)], C=[$t4], deptno=[$t1])\n"
+ + " EnumerableAggregate(group=[{0, 1}], groups=[[{0, 1}, {0}, {1}, {}]], agg#0=[$SUM0($2)])\n"
+ + " EnumerableTableScan(table=[[hr, m0]])"));
+ }
+
/** Aggregation materialization with a project. */
@Test public void testAggregateProject() {
// Note that materialization does not start with the GROUP BY columns.