Xinyi Yu created SPARK-44714:
--------------------------------

             Summary: Ease restriction of LCA resolution regarding queries with 
having
                 Key: SPARK-44714
                 URL: https://issues.apache.org/jira/browse/SPARK-44714
             Project: Spark
          Issue Type: Sub-task
          Components: SQL
    Affects Versions: 3.4.2, 3.5.0
            Reporter: Xinyi Yu


Current LCA resolution has a limitation, that it can't resolve the query, when 
it satisfies all the following criteria:
 # the main (outer) query has having clause
 # there is a window expression in the query
 # in the same SELECT list as the window expression in 2), there is an lca

This is because LCA won't rewrite plan until UNRESOLVED_HAVING is resolved; 
window expressions won't be extracted until LCA in the same SELECT lists are 
rewritten; however UNRESOLVED_HAVING depends on the child to be resolved, which 
could include the Window. It becomes a deadlock.

*We should ease some limitation on the LCA resolution regarding to having, to 
break the deadlock for most cases.*

For example, for the following query:
create table t (col boolean) using orc;

with w AS (    select min(col) over () as min_alias,
           min_alias as col_alias    FROM t
)select col_alias from whaving count(*) > 0;
 
It now throws confusing error message:
[UNRESOLVED_COLUMN.WITH_SUGGESTION] A column or function parameter with name 
`col_alias` 
cannot be resolved. Did you mean one of the following? [`col_alias`, 
`min_alias`].
The LCA and window is in a CTE that is completely unrelated to the having. LCA 
should resolve in this case.



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

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

Reply via email to