You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2015/01/21 22:36:43 UTC
incubator-calcite git commit: [CALCITE-503] Tests to check rules on
Aggregate operator without grouping sets (Jesus Camacho Rodriguez)
Repository: incubator-calcite
Updated Branches:
refs/heads/master 2bbfbdab8 -> 4e1854044
[CALCITE-503] Tests to check rules on Aggregate operator without grouping sets (Jesus Camacho Rodriguez)
Close apache/incubator-calcite#44
Project: http://git-wip-us.apache.org/repos/asf/incubator-calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-calcite/commit/4e185404
Tree: http://git-wip-us.apache.org/repos/asf/incubator-calcite/tree/4e185404
Diff: http://git-wip-us.apache.org/repos/asf/incubator-calcite/diff/4e185404
Branch: refs/heads/master
Commit: 4e18540440036b01370a2c4c0657d14d80b303bf
Parents: 2bbfbda
Author: Jesus Camacho Rodriguez <jc...@hortonworks.com>
Authored: Wed Jan 21 13:44:59 2015 +0000
Committer: Julian Hyde <jh...@apache.org>
Committed: Wed Jan 21 13:07:23 2015 -0800
----------------------------------------------------------------------
.../apache/calcite/test/RelOptRulesTest.java | 16 ++++++++++
.../org/apache/calcite/test/RelOptRulesTest.xml | 33 ++++++++++++++++++++
2 files changed, 49 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/4e185404/core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java b/core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java
index 4e50e89..1db7658 100644
--- a/core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java
+++ b/core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java
@@ -37,6 +37,7 @@ import org.apache.calcite.rel.rules.AggregateFilterTransposeRule;
import org.apache.calcite.rel.rules.AggregateProjectMergeRule;
import org.apache.calcite.rel.rules.AggregateProjectPullUpConstantsRule;
import org.apache.calcite.rel.rules.AggregateReduceFunctionsRule;
+import org.apache.calcite.rel.rules.AggregateUnionAggregateRule;
import org.apache.calcite.rel.rules.AggregateUnionTransposeRule;
import org.apache.calcite.rel.rules.CalcMergeRule;
import org.apache.calcite.rel.rules.CoerceInputsRule;
@@ -1203,6 +1204,21 @@ public class RelOptRulesTest extends RelOptTestBase {
+ "group by rollup(x, y)");
}
+ @Test public void testPullAggregateThroughUnion() throws Exception {
+ HepProgram program = new HepProgramBuilder()
+ .addRuleInstance(AggregateUnionAggregateRule.INSTANCE)
+ .build();
+
+ checkPlanning(program,
+ "select deptno, job from"
+ + " (select deptno, job from emp as e1"
+ + " group by deptno,job"
+ + " union all"
+ + " select deptno, job from emp as e2"
+ + " group by deptno,job)"
+ + " group by deptno,job");
+ }
+
public void transitiveInference(RelOptRule... extraRules) throws Exception {
final DiffRepository diffRepos = getDiffRepos();
String sql = diffRepos.expand(null, "${sql}");
http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/4e185404/core/src/test/resources/org/apache/calcite/test/RelOptRulesTest.xml
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/calcite/test/RelOptRulesTest.xml b/core/src/test/resources/org/apache/calcite/test/RelOptRulesTest.xml
index 7e1e00b..ce8c4d2 100644
--- a/core/src/test/resources/org/apache/calcite/test/RelOptRulesTest.xml
+++ b/core/src/test/resources/org/apache/calcite/test/RelOptRulesTest.xml
@@ -2918,6 +2918,39 @@ LogicalProject(X=[$0], EXPR$1=[$4], Y=[$1])
]]>
</Resource>
</TestCase>
+ <TestCase name="testPullAggregateThroughUnion">
+ <Resource name="sql">
+ <![CDATA[select deptno, job from
+ (select deptno, job from emp as e1
+ group by deptno,job
+ union all
+ select deptno, job from emp as e2
+ group by deptno,job)
+ group by deptno,job]]>
+ </Resource>
+ <Resource name="planBefore">
+ <![CDATA[
+LogicalAggregate(group=[{0, 1}])
+ LogicalUnion(all=[true])
+ LogicalAggregate(group=[{0, 1}])
+ LogicalProject(DEPTNO=[$7], JOB=[$2])
+ LogicalTableScan(table=[[CATALOG, SALES, EMP]])
+ LogicalAggregate(group=[{0, 1}])
+ LogicalProject(DEPTNO=[$7], JOB=[$2])
+ LogicalTableScan(table=[[CATALOG, SALES, EMP]])
+]]>
+ </Resource>
+ <Resource name="planAfter">
+ <![CDATA[
+LogicalAggregate(group=[{0, 1}])
+ LogicalUnion(all=[true])
+ LogicalProject(DEPTNO=[$7], JOB=[$2])
+ LogicalTableScan(table=[[CATALOG, SALES, EMP]])
+ LogicalProject(DEPTNO=[$7], JOB=[$2])
+ LogicalTableScan(table=[[CATALOG, SALES, EMP]])
+]]>
+ </Resource>
+ </TestCase>
<TestCase name="testPushFilterWithRank">
<Resource name="sql">
<![CDATA[select e1.ename, r