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: [email protected]
For additional commands, e-mail: [email protected]