You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Wenchen Fan (Jira)" <ji...@apache.org> on 2024/03/04 14:55:00 UTC

[jira] [Resolved] (SPARK-47070) Subquery rewrite inside an aggregation makes an aggregation invalid

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

Wenchen Fan resolved SPARK-47070.
---------------------------------
    Fix Version/s: 4.0.0
       Resolution: Fixed

> Subquery rewrite inside an aggregation makes an aggregation invalid
> -------------------------------------------------------------------
>
>                 Key: SPARK-47070
>                 URL: https://issues.apache.org/jira/browse/SPARK-47070
>             Project: Spark
>          Issue Type: Bug
>          Components: Spark Core
>    Affects Versions: 3.5.0
>            Reporter: Anton Lykov
>            Assignee: Anton Kirillov
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 4.0.0
>
>
> When an in/exists-subquery appears inside an aggregate expression within a top-level GROUP BY, it gets rewritten and a new `exists` variable is introduced. However, this variable is incorrectly handled in aggregation. For example, consider the following query:
> ```
> SELECT
> CASE
> WHEN t1.id IN (SELECT id FROM t2) THEN 10
> ELSE -10
> END AS v1
> FROM t1
> GROUP BY t1.id;
> ```
>  
> Executing it leads to the following error:
> ```
> java.lang.IllegalArgumentException: Cannot find column index for attribute 'exists#844' in: Map()
> ```



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