You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Lauri Koobas (Jira)" <ji...@apache.org> on 2022/02/08 07:58:00 UTC
[jira] [Commented] (SPARK-37500) Incorrect scope when using named_windows in CTEs
[ https://issues.apache.org/jira/browse/SPARK-37500?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17488649#comment-17488649 ]
Lauri Koobas commented on SPARK-37500:
--------------------------------------
This particular case is fixed indeed, but I believe it was fixed in a bad way.
This works: (notice the JOIN is commented out):
{noformat}
create or replace temporary view test_temp_view as
with step_1 as (
select *
, min(a) over w2 as min_a_over_w1
from (select 1 as a, 2 as b, 3 as c)
window w2 as (partition by b order by c)
)
, step_2 as (
select *
from (select 1 as e, 2 as f, 3 as g)
--join step_1 on true
window w1 as (partition by f order by g)
)
select *
from step_2
{noformat}
This doesn't:
{noformat}
create or replace temporary view test_temp_view as
with step_1 as (
select *
, min(a) over w2 as min_a_over_w1
from (select 1 as a, 2 as b, 3 as c)
window w2 as (partition by b order by c)
)
, step_2 as (
select *
from (select 1 as e, 2 as f, 3 as g)
join step_1 on true
window w1 as (partition by f order by g)
)
select *
from step_2
{noformat}
It seems that JOIN-ng one CTE with a named window to another CTE with a named window will overwrite/clear some scope.
Somehow it also ONLY applies when creating a view, but not when just running the query.
> Incorrect scope when using named_windows in CTEs
> ------------------------------------------------
>
> Key: SPARK-37500
> URL: https://issues.apache.org/jira/browse/SPARK-37500
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Affects Versions: 3.1.2, 3.2.0
> Environment: Databricks Runtime 9.0, 9.1, 10.0
> Reporter: Lauri Koobas
> Priority: Major
>
> This works, but shouldn't. The named_window is described outside the CTE that uses it.
> {code:sql}
> with step_1 as (
> select *
> , min(a) over w1 as min_a_over_w1
> from (select 1 as a, 2 as b, 3 as c)
> )
> select *
> from step_1
> window w1 as (partition by b order by c)
> {code}
>
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org