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),