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

Peter Toth updated SPARK-28228:
-------------------------------
    Description: 
PostgreSQL handles nested WITHs in a different way then Spark does currently. 
These queries retunes 1 in Spark while they return 2 in PostgreSQL:

{noformat}
WITH
  t AS (SELECT 1),
  t2 AS (
    WITH t AS (SELECT 2)
    SELECT * FROM t
  )
SELECT * FROM t2
{noformat}

{noformat}
WITH t AS (SELECT 1)
SELECT (
  WITH t AS (SELECT 2)
  SELECT * FROM t
)
{noformat}

  was:
Because of Spark-17590 it should be relatively easy to support WITH clause in 
subqueries besides nested CTE definitions.

Here an example of a query that does not run on spark:
create table test (seqno int, k string, v int) using parquet;
insert into TABLE test values (1,'a', 99),(2, 'b', 88),(3, 'a', 77),(4, 'b', 
66),(5, 'c', 55),(6, 'a', 44),(7, 'b', 33);
SELECT percentile(b, 0.5) FROM (WITH mavg AS (SELECT k, AVG(v) OVER (PARTITION 
BY k ORDER BY seqno ROWS BETWEEN 3 PRECEDING AND CURRENT ROW) as b FROM test 
ORDER BY seqno) SELECT k, MAX(b) as b  FROM mavg GROUP BY k);


> Better support for WITH clause
> ------------------------------
>
>                 Key: SPARK-28228
>                 URL: https://issues.apache.org/jira/browse/SPARK-28228
>             Project: Spark
>          Issue Type: Sub-task
>          Components: SQL
>    Affects Versions: 3.0.0
>            Reporter: Peter Toth
>            Priority: Major
>
> PostgreSQL handles nested WITHs in a different way then Spark does currently. 
> These queries retunes 1 in Spark while they return 2 in PostgreSQL:
> {noformat}
> WITH
>   t AS (SELECT 1),
>   t2 AS (
>     WITH t AS (SELECT 2)
>     SELECT * FROM t
>   )
> SELECT * FROM t2
> {noformat}
> {noformat}
> WITH t AS (SELECT 1)
> SELECT (
>   WITH t AS (SELECT 2)
>   SELECT * FROM t
> )
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to