You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Apache Spark (Jira)" <ji...@apache.org> on 2020/12/23 12:58:01 UTC

[jira] [Assigned] (SPARK-33837) Correlated subquery field resolve bug when inner table has a field with the same name with outer table

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

Apache Spark reassigned SPARK-33837:
------------------------------------

    Assignee: Apache Spark

> Correlated subquery field resolve bug when inner table has a field with the same name with outer table
> ------------------------------------------------------------------------------------------------------
>
>                 Key: SPARK-33837
>                 URL: https://issues.apache.org/jira/browse/SPARK-33837
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 2.4.3
>            Reporter: Su Qilong
>            Assignee: Apache Spark
>            Priority: Major
>
> For the following statements:
> {code:java}
> create table t1(id int, name string)
> create table id(key int, name string);
> select * from id where name in (select name from t1 where t1.id = id.key)
> {code}
> This query is supported by spark, but since table t1 also has an attribute named id, spark will raise an error like:
> {noformat}
> Can't extract value from id#83: need struct type but got int;
> {noformat}
> According to implementation in Spark's ResolveReference rule, the name resolving precedence is `db.table` => `table.attr` => `attr.innerfield`
> So here id.key should be resolved as table id's attribute, rather than the innerfield of the attribute of table t1
> The problem in this resolving bug lies in the subquery resolving. In ResolveSubquery rule, we first try to resolve subquery independently, and only when there're unresolved attribute in subquery, we try resolveOuterReferences. 
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org