You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ko...@apache.org on 2022/11/22 13:16:51 UTC

[ignite-3] branch main updated: IGNITE-18212 Fix parsing error on GROUP BY with alias (#1364)

This is an automated email from the ASF dual-hosted git repository.

korlov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new bd6098e7b7 IGNITE-18212 Fix parsing error on GROUP BY with alias (#1364)
bd6098e7b7 is described below

commit bd6098e7b732024f1d35c81f5dd900e9bbdfbd7f
Author: korlov42 <ko...@gridgain.com>
AuthorDate: Tue Nov 22 15:16:46 2022 +0200

    IGNITE-18212 Fix parsing error on GROUP BY with alias (#1364)
---
 .../internal/sql/engine/ItAggregatesTest.java      | 29 ++++++++++++++++++++++
 .../sql/engine/sql/IgniteSqlConformance.java       | 12 +++++++++
 2 files changed, 41 insertions(+)

diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItAggregatesTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItAggregatesTest.java
index 6d19fa3bca..43147dad4f 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItAggregatesTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItAggregatesTest.java
@@ -64,6 +64,35 @@ public class ItAggregatesTest extends AbstractBasicIntegrationTest {
                 .returns(15d, 1L)
                 .check();
 
+        // same query, but grouping by alias
+        assertQuery("select salary as sal, count(name) from person group by sal order by sal")
+                .returns(10d, 3L)
+                .returns(15d, 1L)
+                .check();
+
+        // same query, but grouping by ordinal
+        assertQuery("select salary, count(name) from person group by 1 order by 1")
+                .returns(10d, 3L)
+                .returns(15d, 1L)
+                .check();
+
+        assertQuery("select salary * salary / 5, count(name) from person group by (salary * salary / 5) order by (salary * salary / 5)")
+                .returns(20d, 3L)
+                .returns(45d, 1L)
+                .check();
+
+        // same query, but grouping by alias
+        assertQuery("select (salary * salary / 5) as sal, count(name) from person group by sal order by sal")
+                .returns(20d, 3L)
+                .returns(45d, 1L)
+                .check();
+
+        // same query, but grouping by ordinal
+        assertQuery("select salary * salary / 5, count(name) from person group by 1 order by 1")
+                .returns(20d, 3L)
+                .returns(45d, 1L)
+                .check();
+
         assertQuery("select salary, count(*) from person group by salary order by salary")
                 .returns(10d, 3L)
                 .returns(15d, 2L)
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/sql/IgniteSqlConformance.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/sql/IgniteSqlConformance.java
index 8cdc940dbf..cb4ef685a2 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/sql/IgniteSqlConformance.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/sql/IgniteSqlConformance.java
@@ -38,4 +38,16 @@ public class IgniteSqlConformance extends SqlAbstractConformance {
     public boolean isBangEqualAllowed() {
         return true;
     }
+
+    /** {@inheritDoc} */
+    @Override
+    public boolean isGroupByAlias() {
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public boolean isGroupByOrdinal() {
+        return true;
+    }
 }