You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Marko Radoicic (Jira)" <ji...@apache.org> on 2026/10/14 10:58:00 UTC

[jira] [Created] (SPARK-60239) Reject aliased GROUP BY ordinals in pipe AGGREGATE

Marko Radoicic created SPARK-60239:
--------------------------------------

             Summary: 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


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: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org