You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by gu...@apache.org on 2020/02/25 08:39:29 UTC

[spark] branch branch-3.0 updated: [SPARK-28228][SQL][TESTS] Refactoring for nested CTE tests

This is an automated email from the ASF dual-hosted git repository.

gurwls223 pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new ff6662a  [SPARK-28228][SQL][TESTS] Refactoring for nested CTE tests
ff6662a is described below

commit ff6662acc6ff1511cc1c6b3671c54156102b0aae
Author: Yuanjian Li <xy...@gmail.com>
AuthorDate: Tue Feb 25 17:37:34 2020 +0900

    [SPARK-28228][SQL][TESTS] Refactoring for nested CTE tests
    
    ### What changes were proposed in this pull request?
    Split the nested CTE cases into a single file `cte-nested.sql`, which will be reused in cte-legacy.sql and cte-nonlegacy.sql.
    
    ### Why are the changes needed?
    Make the cases easy to maintain.
    
    ### Does this PR introduce any user-facing change?
    No.
    
    ### How was this patch tested?
    Existing UT.
    
    Closes #27667 from xuanyuanking/SPARK-28228-test.
    
    Authored-by: Yuanjian Li <xy...@gmail.com>
    Signed-off-by: HyukjinKwon <gu...@apache.org>
---
 .../test/resources/sql-tests/inputs/cte-legacy.sql | 117 +-------------
 .../inputs/{cte-legacy.sql => cte-nested.sql}      |  10 --
 .../resources/sql-tests/inputs/cte-nonlegacy.sql   |   2 +-
 .../src/test/resources/sql-tests/inputs/cte.sql    | 106 ------------
 .../resources/sql-tests/results/cte-legacy.sql.out |  42 +----
 .../results/{cte.sql.out => cte-nested.sql.out}    | 177 +--------------------
 .../sql-tests/results/cte-nonlegacy.sql.out        | 177 +--------------------
 .../test/resources/sql-tests/results/cte.sql.out   | 174 +-------------------
 8 files changed, 7 insertions(+), 798 deletions(-)

diff --git a/sql/core/src/test/resources/sql-tests/inputs/cte-legacy.sql b/sql/core/src/test/resources/sql-tests/inputs/cte-legacy.sql
index d8754d3..29dee1a 100644
--- a/sql/core/src/test/resources/sql-tests/inputs/cte-legacy.sql
+++ b/sql/core/src/test/resources/sql-tests/inputs/cte-legacy.sql
@@ -1,115 +1,2 @@
-create temporary view t as select * from values 0, 1, 2 as t(id);
-create temporary view t2 as select * from values 0, 1 as t(id);
-
--- CTE legacy substitution
-SET spark.sql.legacy.ctePrecedencePolicy=legacy;
-
--- CTE in CTE definition
-WITH t as (
-  WITH t2 AS (SELECT 1)
-  SELECT * FROM t2
-)
-SELECT * FROM t;
-
--- CTE in subquery
-SELECT max(c) FROM (
-  WITH t(c) AS (SELECT 1)
-  SELECT * FROM t
-);
-
--- CTE in subquery expression
-SELECT (
-  WITH t AS (SELECT 1)
-  SELECT * FROM t
-);
-
--- CTE in CTE definition shadows outer
-WITH
-  t AS (SELECT 1),
-  t2 AS (
-    WITH t AS (SELECT 2)
-    SELECT * FROM t
-  )
-SELECT * FROM t2;
-
--- CTE in CTE definition shadows outer 2
-WITH
-  t(c) AS (SELECT 1),
-  t2 AS (
-    SELECT (
-      SELECT max(c) FROM (
-        WITH t(c) AS (SELECT 2)
-        SELECT * FROM t
-      )
-    )
-  )
-SELECT * FROM t2;
-
--- CTE in CTE definition shadows outer 3
-WITH
-  t AS (SELECT 1),
-  t2 AS (
-    WITH t AS (SELECT 2),
-    t2 AS (
-      WITH t AS (SELECT 3)
-      SELECT * FROM t
-    )
-    SELECT * FROM t2
-  )
-SELECT * FROM t2;
-
--- CTE in subquery shadows outer
-WITH t(c) AS (SELECT 1)
-SELECT max(c) FROM (
-  WITH t(c) AS (SELECT 2)
-  SELECT * FROM t
-);
-
--- CTE in subquery shadows outer 2
-WITH t(c) AS (SELECT 1)
-SELECT sum(c) FROM (
-  SELECT max(c) AS c FROM (
-    WITH t(c) AS (SELECT 2)
-    SELECT * FROM t
-  )
-);
-
--- CTE in subquery shadows outer 3
-WITH t(c) AS (SELECT 1)
-SELECT sum(c) FROM (
-  WITH t(c) AS (SELECT 2)
-  SELECT max(c) AS c FROM (
-    WITH t(c) AS (SELECT 3)
-    SELECT * FROM t
-  )
-);
-
--- CTE in subquery expression shadows outer
-WITH t AS (SELECT 1)
-SELECT (
-  WITH t AS (SELECT 2)
-  SELECT * FROM t
-);
-
--- CTE in subquery expression shadows outer 2
-WITH t AS (SELECT 1)
-SELECT (
-  SELECT (
-    WITH t AS (SELECT 2)
-    SELECT * FROM t
-  )
-);
-
--- CTE in subquery expression shadows outer 3
-WITH t AS (SELECT 1)
-SELECT (
-  WITH t AS (SELECT 2)
-  SELECT (
-    WITH t AS (SELECT 3)
-    SELECT * FROM t
-  )
-);
-
--- Clean up
-DROP VIEW IF EXISTS t;
-DROP VIEW IF EXISTS t2;
+--SET spark.sql.legacy.ctePrecedencePolicy = legacy
+--IMPORT cte-nested.sql
diff --git a/sql/core/src/test/resources/sql-tests/inputs/cte-legacy.sql b/sql/core/src/test/resources/sql-tests/inputs/cte-nested.sql
similarity index 86%
copy from sql/core/src/test/resources/sql-tests/inputs/cte-legacy.sql
copy to sql/core/src/test/resources/sql-tests/inputs/cte-nested.sql
index d8754d3..5e5e3a5 100644
--- a/sql/core/src/test/resources/sql-tests/inputs/cte-legacy.sql
+++ b/sql/core/src/test/resources/sql-tests/inputs/cte-nested.sql
@@ -1,9 +1,3 @@
-create temporary view t as select * from values 0, 1, 2 as t(id);
-create temporary view t2 as select * from values 0, 1 as t(id);
-
--- CTE legacy substitution
-SET spark.sql.legacy.ctePrecedencePolicy=legacy;
-
 -- CTE in CTE definition
 WITH t as (
   WITH t2 AS (SELECT 1)
@@ -109,7 +103,3 @@ SELECT (
     SELECT * FROM t
   )
 );
-
--- Clean up
-DROP VIEW IF EXISTS t;
-DROP VIEW IF EXISTS t2;
diff --git a/sql/core/src/test/resources/sql-tests/inputs/cte-nonlegacy.sql b/sql/core/src/test/resources/sql-tests/inputs/cte-nonlegacy.sql
index 8b9ce89..d3b4539 100644
--- a/sql/core/src/test/resources/sql-tests/inputs/cte-nonlegacy.sql
+++ b/sql/core/src/test/resources/sql-tests/inputs/cte-nonlegacy.sql
@@ -1,2 +1,2 @@
 --SET spark.sql.legacy.ctePrecedencePolicy = corrected
---IMPORT cte.sql
+--IMPORT cte-nested.sql
diff --git a/sql/core/src/test/resources/sql-tests/inputs/cte.sql b/sql/core/src/test/resources/sql-tests/inputs/cte.sql
index d0e145c..ec2f480 100644
--- a/sql/core/src/test/resources/sql-tests/inputs/cte.sql
+++ b/sql/core/src/test/resources/sql-tests/inputs/cte.sql
@@ -49,112 +49,6 @@ WITH
   t(x) AS (SELECT 2)
 SELECT * FROM t;
 
--- CTE in CTE definition
-WITH t as (
-  WITH t2 AS (SELECT 1)
-  SELECT * FROM t2
-)
-SELECT * FROM t;
-
--- CTE in subquery
-SELECT max(c) FROM (
-  WITH t(c) AS (SELECT 1)
-  SELECT * FROM t
-);
-
--- CTE in subquery expression
-SELECT (
-  WITH t AS (SELECT 1)
-  SELECT * FROM t
-);
-
--- CTE in CTE definition shadows outer
-WITH
-  t AS (SELECT 1),
-  t2 AS (
-    WITH t AS (SELECT 2)
-    SELECT * FROM t
-  )
-SELECT * FROM t2;
-
--- CTE in CTE definition shadows outer 2
-WITH
-  t(c) AS (SELECT 1),
-  t2 AS (
-    SELECT (
-      SELECT max(c) FROM (
-        WITH t(c) AS (SELECT 2)
-        SELECT * FROM t
-      )
-    )
-  )
-SELECT * FROM t2;
-
--- CTE in CTE definition shadows outer 3
-WITH
-  t AS (SELECT 1),
-  t2 AS (
-    WITH t AS (SELECT 2),
-    t2 AS (
-      WITH t AS (SELECT 3)
-      SELECT * FROM t
-    )
-    SELECT * FROM t2
-  )
-SELECT * FROM t2;
-
--- CTE in subquery shadows outer
-WITH t(c) AS (SELECT 1)
-SELECT max(c) FROM (
-  WITH t(c) AS (SELECT 2)
-  SELECT * FROM t
-);
-
--- CTE in subquery shadows outer 2
-WITH t(c) AS (SELECT 1)
-SELECT sum(c) FROM (
-  SELECT max(c) AS c FROM (
-    WITH t(c) AS (SELECT 2)
-    SELECT * FROM t
-  )
-);
-
--- CTE in subquery shadows outer 3
-WITH t(c) AS (SELECT 1)
-SELECT sum(c) FROM (
-  WITH t(c) AS (SELECT 2)
-  SELECT max(c) AS c FROM (
-    WITH t(c) AS (SELECT 3)
-    SELECT * FROM t
-  )
-);
-
--- CTE in subquery expression shadows outer
-WITH t AS (SELECT 1)
-SELECT (
-  WITH t AS (SELECT 2)
-  SELECT * FROM t
-);
-
--- CTE in subquery expression shadows outer 2
-WITH t AS (SELECT 1)
-SELECT (
-  SELECT (
-    WITH t AS (SELECT 2)
-    SELECT * FROM t
-  )
-);
-
--- CTE in subquery expression shadows outer 3
-WITH t AS (SELECT 1)
-SELECT (
-  WITH t AS (SELECT 2)
-  SELECT (
-    WITH t AS (SELECT 3)
-    SELECT * FROM t
-  )
-);
-
 -- Clean up
 DROP VIEW IF EXISTS t;
 DROP VIEW IF EXISTS t2;
diff --git a/sql/core/src/test/resources/sql-tests/results/cte-legacy.sql.out b/sql/core/src/test/resources/sql-tests/results/cte-legacy.sql.out
index a20ae55..e8020e1 100644
--- a/sql/core/src/test/resources/sql-tests/results/cte-legacy.sql.out
+++ b/sql/core/src/test/resources/sql-tests/results/cte-legacy.sql.out
@@ -1,29 +1,5 @@
 -- Automatically generated by SQLQueryTestSuite
--- Number of queries: 17
-
-
--- !query
-create temporary view t as select * from values 0, 1, 2 as t(id)
--- !query schema
-struct<>
--- !query output
-
-
-
--- !query
-create temporary view t2 as select * from values 0, 1 as t(id)
--- !query schema
-struct<>
--- !query output
-
-
-
--- !query
-SET spark.sql.legacy.ctePrecedencePolicy=legacy
--- !query schema
-struct<key:string,value:string>
--- !query output
-spark.sql.legacy.ctePrecedencePolicy	legacy
+-- Number of queries: 12
 
 
 -- !query
@@ -190,19 +166,3 @@ SELECT (
 struct<scalarsubquery():int>
 -- !query output
 1
-
-
--- !query
-DROP VIEW IF EXISTS t
--- !query schema
-struct<>
--- !query output
-
-
-
--- !query
-DROP VIEW IF EXISTS t2
--- !query schema
-struct<>
--- !query output
-
diff --git a/sql/core/src/test/resources/sql-tests/results/cte.sql.out b/sql/core/src/test/resources/sql-tests/results/cte-nested.sql.out
similarity index 59%
copy from sql/core/src/test/resources/sql-tests/results/cte.sql.out
copy to sql/core/src/test/resources/sql-tests/results/cte-nested.sql.out
index 6486fba..64d635a 100644
--- a/sql/core/src/test/resources/sql-tests/results/cte.sql.out
+++ b/sql/core/src/test/resources/sql-tests/results/cte-nested.sql.out
@@ -1,164 +1,5 @@
 -- Automatically generated by SQLQueryTestSuite
--- Number of queries: 27
-
-
--- !query
-create temporary view t as select * from values 0, 1, 2 as t(id)
--- !query schema
-struct<>
--- !query output
-
-
-
--- !query
-create temporary view t2 as select * from values 0, 1 as t(id)
--- !query schema
-struct<>
--- !query output
-
-
-
--- !query
-WITH s AS (SELECT 1 FROM s) SELECT * FROM s
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.AnalysisException
-Table or view not found: s; line 1 pos 25
-
-
--- !query
-WITH r AS (SELECT (SELECT * FROM r))
-SELECT * FROM r
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.AnalysisException
-Table or view not found: r; line 1 pos 33
-
-
--- !query
-WITH t AS (SELECT 1 FROM t) SELECT * FROM t
--- !query schema
-struct<1:int>
--- !query output
-1
-1
-1
-
-
--- !query
-WITH s1 AS (SELECT 1 FROM s2), s2 AS (SELECT 1 FROM s1) SELECT * FROM s1, s2
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.AnalysisException
-Table or view not found: s2; line 1 pos 26
-
-
--- !query
-WITH t1 AS (SELECT * FROM t2), t2 AS (SELECT 2 FROM t1) SELECT * FROM t1 cross join t2
--- !query schema
-struct<id:int,2:int>
--- !query output
-0	2
-0	2
-1	2
-1	2
-
-
--- !query
-WITH CTE1 AS (
-  SELECT b.id AS id
-  FROM   T2 a
-         CROSS JOIN (SELECT id AS id FROM T2) b
-)
-SELECT t1.id AS c1,
-       t2.id AS c2
-FROM   CTE1 t1
-       CROSS JOIN CTE1 t2
--- !query schema
-struct<c1:int,c2:int>
--- !query output
-0	0
-0	0
-0	0
-0	0
-0	1
-0	1
-0	1
-0	1
-1	0
-1	0
-1	0
-1	0
-1	1
-1	1
-1	1
-1	1
-
-
--- !query
-WITH t(x) AS (SELECT 1)
-SELECT * FROM t WHERE x = 1
--- !query schema
-struct<x:int>
--- !query output
-1
-
-
--- !query
-WITH t(x, y) AS (SELECT 1, 2)
-SELECT * FROM t WHERE x = 1 AND y = 2
--- !query schema
-struct<x:int,y:int>
--- !query output
-1	2
-
-
--- !query
-WITH t(x, x) AS (SELECT 1, 2)
-SELECT * FROM t
--- !query schema
-struct<x:int,x:int>
--- !query output
-1	2
-
-
--- !query
-WITH t() AS (SELECT 1)
-SELECT * FROM t
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.catalyst.parser.ParseException
-
-no viable alternative at input 'WITH t()'(line 1, pos 7)
-
-== SQL ==
-WITH t() AS (SELECT 1)
--------^^^
-SELECT * FROM t
-
-
--- !query
-WITH
-  t(x) AS (SELECT 1),
-  t(x) AS (SELECT 2)
-SELECT * FROM t
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.catalyst.parser.ParseException
-
-CTE definition can't have duplicate names: 't'.(line 1, pos 0)
-
-== SQL ==
-WITH
-^^^
-  t(x) AS (SELECT 1),
-  t(x) AS (SELECT 2)
-SELECT * FROM t
+-- Number of queries: 12
 
 
 -- !query
@@ -331,19 +172,3 @@ struct<>
 -- !query output
 org.apache.spark.sql.AnalysisException
 Name t is ambiguous in nested CTE. Please set spark.sql.legacy.ctePrecedencePolicy to CORRECTED so that name defined in inner CTE takes precedence. If set it to LEGACY, outer CTE definitions will take precedence. See more details in SPARK-28228.;
-
-
--- !query
-DROP VIEW IF EXISTS t
--- !query schema
-struct<>
--- !query output
-
-
-
--- !query
-DROP VIEW IF EXISTS t2
--- !query schema
-struct<>
--- !query output
-
diff --git a/sql/core/src/test/resources/sql-tests/results/cte-nonlegacy.sql.out b/sql/core/src/test/resources/sql-tests/results/cte-nonlegacy.sql.out
index 2d87781..9422bb6 100644
--- a/sql/core/src/test/resources/sql-tests/results/cte-nonlegacy.sql.out
+++ b/sql/core/src/test/resources/sql-tests/results/cte-nonlegacy.sql.out
@@ -1,164 +1,5 @@
 -- Automatically generated by SQLQueryTestSuite
--- Number of queries: 27
-
-
--- !query
-create temporary view t as select * from values 0, 1, 2 as t(id)
--- !query schema
-struct<>
--- !query output
-
-
-
--- !query
-create temporary view t2 as select * from values 0, 1 as t(id)
--- !query schema
-struct<>
--- !query output
-
-
-
--- !query
-WITH s AS (SELECT 1 FROM s) SELECT * FROM s
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.AnalysisException
-Table or view not found: s; line 1 pos 25
-
-
--- !query
-WITH r AS (SELECT (SELECT * FROM r))
-SELECT * FROM r
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.AnalysisException
-Table or view not found: r; line 1 pos 33
-
-
--- !query
-WITH t AS (SELECT 1 FROM t) SELECT * FROM t
--- !query schema
-struct<1:int>
--- !query output
-1
-1
-1
-
-
--- !query
-WITH s1 AS (SELECT 1 FROM s2), s2 AS (SELECT 1 FROM s1) SELECT * FROM s1, s2
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.AnalysisException
-Table or view not found: s2; line 1 pos 26
-
-
--- !query
-WITH t1 AS (SELECT * FROM t2), t2 AS (SELECT 2 FROM t1) SELECT * FROM t1 cross join t2
--- !query schema
-struct<id:int,2:int>
--- !query output
-0	2
-0	2
-1	2
-1	2
-
-
--- !query
-WITH CTE1 AS (
-  SELECT b.id AS id
-  FROM   T2 a
-         CROSS JOIN (SELECT id AS id FROM T2) b
-)
-SELECT t1.id AS c1,
-       t2.id AS c2
-FROM   CTE1 t1
-       CROSS JOIN CTE1 t2
--- !query schema
-struct<c1:int,c2:int>
--- !query output
-0	0
-0	0
-0	0
-0	0
-0	1
-0	1
-0	1
-0	1
-1	0
-1	0
-1	0
-1	0
-1	1
-1	1
-1	1
-1	1
-
-
--- !query
-WITH t(x) AS (SELECT 1)
-SELECT * FROM t WHERE x = 1
--- !query schema
-struct<x:int>
--- !query output
-1
-
-
--- !query
-WITH t(x, y) AS (SELECT 1, 2)
-SELECT * FROM t WHERE x = 1 AND y = 2
--- !query schema
-struct<x:int,y:int>
--- !query output
-1	2
-
-
--- !query
-WITH t(x, x) AS (SELECT 1, 2)
-SELECT * FROM t
--- !query schema
-struct<x:int,x:int>
--- !query output
-1	2
-
-
--- !query
-WITH t() AS (SELECT 1)
-SELECT * FROM t
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.catalyst.parser.ParseException
-
-no viable alternative at input 'WITH t()'(line 1, pos 7)
-
-== SQL ==
-WITH t() AS (SELECT 1)
--------^^^
-SELECT * FROM t
-
-
--- !query
-WITH
-  t(x) AS (SELECT 1),
-  t(x) AS (SELECT 2)
-SELECT * FROM t
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.catalyst.parser.ParseException
-
-CTE definition can't have duplicate names: 't'.(line 1, pos 0)
-
-== SQL ==
-WITH
-^^^
-  t(x) AS (SELECT 1),
-  t(x) AS (SELECT 2)
-SELECT * FROM t
+-- Number of queries: 12
 
 
 -- !query
@@ -325,19 +166,3 @@ SELECT (
 struct<scalarsubquery():int>
 -- !query output
 3
-
-
--- !query
-DROP VIEW IF EXISTS t
--- !query schema
-struct<>
--- !query output
-
-
-
--- !query
-DROP VIEW IF EXISTS t2
--- !query schema
-struct<>
--- !query output
-
diff --git a/sql/core/src/test/resources/sql-tests/results/cte.sql.out b/sql/core/src/test/resources/sql-tests/results/cte.sql.out
index 6486fba..b8f6665 100644
--- a/sql/core/src/test/resources/sql-tests/results/cte.sql.out
+++ b/sql/core/src/test/resources/sql-tests/results/cte.sql.out
@@ -1,5 +1,5 @@
 -- Automatically generated by SQLQueryTestSuite
--- Number of queries: 27
+-- Number of queries: 15
 
 
 -- !query
@@ -162,178 +162,6 @@ SELECT * FROM t
 
 
 -- !query
-WITH t as (
-  WITH t2 AS (SELECT 1)
-  SELECT * FROM t2
-)
-SELECT * FROM t
--- !query schema
-struct<1:int>
--- !query output
-1
-
-
--- !query
-SELECT max(c) FROM (
-  WITH t(c) AS (SELECT 1)
-  SELECT * FROM t
-)
--- !query schema
-struct<max(c):int>
--- !query output
-1
-
-
--- !query
-SELECT (
-  WITH t AS (SELECT 1)
-  SELECT * FROM t
-)
--- !query schema
-struct<scalarsubquery():int>
--- !query output
-1
-
-
--- !query
-WITH
-  t AS (SELECT 1),
-  t2 AS (
-    WITH t AS (SELECT 2)
-    SELECT * FROM t
-  )
-SELECT * FROM t2
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.AnalysisException
-Name t is ambiguous in nested CTE. Please set spark.sql.legacy.ctePrecedencePolicy to CORRECTED so that name defined in inner CTE takes precedence. If set it to LEGACY, outer CTE definitions will take precedence. See more details in SPARK-28228.;
-
-
--- !query
-WITH
-  t(c) AS (SELECT 1),
-  t2 AS (
-    SELECT (
-      SELECT max(c) FROM (
-        WITH t(c) AS (SELECT 2)
-        SELECT * FROM t
-      )
-    )
-  )
-SELECT * FROM t2
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.AnalysisException
-Name t is ambiguous in nested CTE. Please set spark.sql.legacy.ctePrecedencePolicy to CORRECTED so that name defined in inner CTE takes precedence. If set it to LEGACY, outer CTE definitions will take precedence. See more details in SPARK-28228.;
-
-
--- !query
-WITH
-  t AS (SELECT 1),
-  t2 AS (
-    WITH t AS (SELECT 2),
-    t2 AS (
-      WITH t AS (SELECT 3)
-      SELECT * FROM t
-    )
-    SELECT * FROM t2
-  )
-SELECT * FROM t2
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.AnalysisException
-Name t is ambiguous in nested CTE. Please set spark.sql.legacy.ctePrecedencePolicy to CORRECTED so that name defined in inner CTE takes precedence. If set it to LEGACY, outer CTE definitions will take precedence. See more details in SPARK-28228.;
-
-
--- !query
-WITH t(c) AS (SELECT 1)
-SELECT max(c) FROM (
-  WITH t(c) AS (SELECT 2)
-  SELECT * FROM t
-)
--- !query schema
-struct<max(c):int>
--- !query output
-2
-
-
--- !query
-WITH t(c) AS (SELECT 1)
-SELECT sum(c) FROM (
-  SELECT max(c) AS c FROM (
-    WITH t(c) AS (SELECT 2)
-    SELECT * FROM t
-  )
-)
--- !query schema
-struct<sum(c):bigint>
--- !query output
-2
-
-
--- !query
-WITH t(c) AS (SELECT 1)
-SELECT sum(c) FROM (
-  WITH t(c) AS (SELECT 2)
-  SELECT max(c) AS c FROM (
-    WITH t(c) AS (SELECT 3)
-    SELECT * FROM t
-  )
-)
--- !query schema
-struct<sum(c):bigint>
--- !query output
-3
-
-
--- !query
-WITH t AS (SELECT 1)
-SELECT (
-  WITH t AS (SELECT 2)
-  SELECT * FROM t
-)
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.AnalysisException
-Name t is ambiguous in nested CTE. Please set spark.sql.legacy.ctePrecedencePolicy to CORRECTED so that name defined in inner CTE takes precedence. If set it to LEGACY, outer CTE definitions will take precedence. See more details in SPARK-28228.;
-
-
--- !query
-WITH t AS (SELECT 1)
-SELECT (
-  SELECT (
-    WITH t AS (SELECT 2)
-    SELECT * FROM t
-  )
-)
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.AnalysisException
-Name t is ambiguous in nested CTE. Please set spark.sql.legacy.ctePrecedencePolicy to CORRECTED so that name defined in inner CTE takes precedence. If set it to LEGACY, outer CTE definitions will take precedence. See more details in SPARK-28228.;
-
-
--- !query
-WITH t AS (SELECT 1)
-SELECT (
-  WITH t AS (SELECT 2)
-  SELECT (
-    WITH t AS (SELECT 3)
-    SELECT * FROM t
-  )
-)
--- !query schema
-struct<>
--- !query output
-org.apache.spark.sql.AnalysisException
-Name t is ambiguous in nested CTE. Please set spark.sql.legacy.ctePrecedencePolicy to CORRECTED so that name defined in inner CTE takes precedence. If set it to LEGACY, outer CTE definitions will take precedence. See more details in SPARK-28228.;
-
-
--- !query
 DROP VIEW IF EXISTS t
 -- !query schema
 struct<>


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