[
https://issues.apache.org/jira/browse/IGNITE-25077?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17947304#comment-17947304
]
Iurii Gerzhedovich commented on IGNITE-25077:
---------------------------------------------
SQL standard says GROUP BY should be followed by ‘grouping column reference’,
empty group or cube() call or `rollup()` call.
‘grouping column reference’ is a basic identifier chain (qualified column
names).
I see no mention of where expression or whatever else can follow GROUP BY.
In Syntax Rules (7.13 <group by clause>):
{code:java}
Each <grouping column reference> shall unambiguously reference a column of the
table resulting from the <from clause>
{code}
I’ve checked it on a few databases, and what we have:
Oracle - ORA-00904: "K": invalid identifier
PG - Error 42703 column "k" does not exist
MS SQL - can execute, result is 1, 6
SQLite - can execute, result is 1, 6
Based on the comment, consider that the error is expected
> Sql. Introduced alias can not be referenced in GROUP BY and GROUPING SET
> clauses
> --------------------------------------------------------------------------------
>
> Key: IGNITE-25077
> URL: https://issues.apache.org/jira/browse/IGNITE-25077
> Project: Ignite
> Issue Type: Bug
> Components: sql
> Reporter: Maksim Zhuravkov
> Assignee: Iurii Gerzhedovich
> Priority: Major
> Labels: ignite-3
>
> Prior to Calcite 1.39 the following queries worked:
> {noformat}
> # aliases can be referenced in group by <columns> clause.
> query II
> SELECT 1 AS k, SUM(i) FROM integers GROUP BY k+1 ORDER BY 2
> ----
> 1 6
> # aliases can be referenced in group by <grouping sets> clause.
> query II
> SELECT 1 AS k, SUM(i) FROM integers GROUP BY GROUPING SETS ((k+1)) ORDER BY 2
> ----
> 1 6
> {noformat}
> With calcite 1.39 they both result in an error:
> {noformat}
> Column 'K' not found in any table
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)