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/09/04 09:35:00 UTC

[02/10] incubator-calcite git commit: [CALCITE-847] AVG window function in GROUP BY gives AssertionError (Hsuan-Yi Chu)

[CALCITE-847] AVG window function in GROUP BY gives AssertionError (Hsuan-Yi Chu)

Close apache/incubator-calcite#126


Project: http://git-wip-us.apache.org/repos/asf/incubator-calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-calcite/commit/d19a9133
Tree: http://git-wip-us.apache.org/repos/asf/incubator-calcite/tree/d19a9133
Diff: http://git-wip-us.apache.org/repos/asf/incubator-calcite/diff/d19a9133

Branch: refs/heads/master
Commit: d19a9133f4941ef80195b8ef19fb7c21a1258abd
Parents: 2a215df
Author: Hsuan-Yi Chu <hs...@usc.edu>
Authored: Sun Aug 16 17:41:54 2015 -0700
Committer: Julian Hyde <jh...@apache.org>
Committed: Wed Sep 2 15:09:27 2015 -0700

----------------------------------------------------------------------
 .../apache/calcite/sql2rel/SqlToRelConverter.java   |  5 +++--
 .../apache/calcite/test/SqlToRelConverterTest.java  | 12 ++++++++++++
 .../apache/calcite/test/SqlToRelConverterTest.xml   | 16 ++++++++++++++++
 3 files changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/d19a9133/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java b/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
index 50f22c1..b3169c5 100644
--- a/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
+++ b/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
@@ -3414,7 +3414,6 @@ public class SqlToRelConverter {
     return ret;
   }
 
-
   private void convertSelectList(
       Blackboard bb,
       SqlSelect select,
@@ -4160,7 +4159,8 @@ public class SqlToRelConverter {
     public RexNode visit(SqlCall call) {
       if (agg != null) {
         final SqlOperator op = call.getOperator();
-        if (op.isAggregator() || op.getKind() == SqlKind.FILTER) {
+        if (window == null
+            && (op.isAggregator() || op.getKind() == SqlKind.FILTER)) {
           return agg.lookupAggregates(call);
         }
       }
@@ -4195,6 +4195,7 @@ public class SqlToRelConverter {
     public List<SqlMonotonicity> getColumnMonotonicities() {
       return columnMonotonicities;
     }
+
   }
 
   /** Deferred lookup. */

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/d19a9133/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java b/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
index 28f31f5..dc5b051 100644
--- a/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
+++ b/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
@@ -1303,6 +1303,18 @@ public class SqlToRelConverterTest extends SqlToRelTestBase {
 
   /**
    * Test case for
+   * <a href="https://issues.apache.org/jira/browse/CALCITE-847">[CALCITE-847]
+   * AVG window function in GROUP BY gives AssertionError</a>.
+   */
+  @Test public void testWindowAverageWithGroupBy() {
+    final String sql = "select avg(deptno) over ()\n"
+        + "from emp\n"
+        + "group by deptno";
+    sql(sql).convertsTo("${plan}");
+  }
+
+  /**
+   * Test case for
    * <a href="https://issues.apache.org/jira/browse/CALCITE-770">[CALCITE-770]
    * variant involving joins</a>.
    */

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/d19a9133/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
----------------------------------------------------------------------
diff --git a/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml b/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
index 0ff7c29..95c5507 100644
--- a/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
+++ b/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
@@ -2330,6 +2330,22 @@ LogicalProject(EXPR$0=[$2], EXPR$1=[RANK() OVER (ORDER BY $1 RANGE BETWEEN UNBOU
 ]]>
         </Resource>
     </TestCase>
+    <TestCase name="testWindowAverageWithGroupBy">
+        <Resource name="sql">
+            <![CDATA[select avg(deptno) over ()
+from emp
+group by deptno
+]]>
+        </Resource>
+        <Resource name="plan">
+            <![CDATA[
+LogicalProject(EXPR$0=[CAST(/(SUM($0) OVER (RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING), COUNT($0) OVER (RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING))):INTEGER NOT NULL])
+  LogicalAggregate(group=[{0}])
+    LogicalProject(DEPTNO=[$7])
+      LogicalTableScan(table=[[CATALOG, SALES, EMP]])
+]]>
+        </Resource>
+    </TestCase>
     <TestCase name="testWindowAggWithGroupByAndJoin">
         <Resource name="sql">
             <![CDATA[select min(d.deptno), rank() over (order by e.empno),