[ 
https://issues.apache.org/jira/browse/SPARK-60239?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated SPARK-60239:
-----------------------------------
    Labels: pull-request-available  (was: )

> Reject aliased GROUP BY ordinals in pipe AGGREGATE
> --------------------------------------------------
>
>                 Key: SPARK-60239
>                 URL: https://issues.apache.org/jira/browse/SPARK-60239
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 5.0.0
>            Reporter: Marko Radoicic
>            Priority: Major
>              Labels: pull-request-available
>
> Pipe AGGREGATE accepts aliases on grouping expressions, but an alias on an 
> integer literal silently changes what the literal means. A bare integer is an 
> ordinal, while an aliased integer is a constant grouping key:
> {code:sql}
> -- Groups by the second aggregate-list position (ordinal).
> TABLE t |> AGGREGATE sum(x) AS s GROUP BY 2
> -- Groups by the constant 2 and outputs a column grp = 2.
> TABLE t |> AGGREGATE sum(x) AS s GROUP BY 2 AS grp
> {code}
> The second query is ambiguous: users who write it most likely mean the 
> ordinal. Regular GROUP BY does not allow aliases at all and rejects the same 
> text:
> {code:sql}
> SELECT x, sum(x) FROM t GROUP BY 2 AS grp
> -- [PARSE_SYNTAX_ERROR] Syntax error at or near 'grp': extra input 'grp'. 
> SQLSTATE: 42601
> {code}
> Pipe AGGREGATE should raise the same error for aliased integer literals (with 
> or without AS, including parenthesized and negative literals), while keeping 
> bare ordinals and aliases on non-ordinal expressions working.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to