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;
+ }
}