vladimirg-db commented on code in PR #49835:
URL: https://github.com/apache/spark/pull/49835#discussion_r1948752710


##########
sql/core/src/test/resources/sql-tests/inputs/view-correctness.sql:
##########
@@ -0,0 +1,421 @@
+-- This test suite checks the correctness of queries over views
+
+-- SPARK-51113, UNION
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1 AS num
+  UNION
+  SELECT 2
+  UNION
+  SELECT 3
+  UNION
+  SELECT 4
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1
+  UNION
+  SELECT 2
+  UNION
+  SELECT 3
+  UNION
+  SELECT 4
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 'a' AS a
+  UNION
+  SELECT 'b'
+  UNION
+  SELECT 'c'
+  UNION
+  SELECT 'd'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 'a'
+  UNION
+  SELECT 'b'
+  UNION
+  SELECT 'c'
+  UNION
+  SELECT 'd'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1, 'a'
+  UNION
+  SELECT 2, 'b'
+  UNION
+  SELECT 3, 'c'
+  UNION
+  SELECT 4, 'd'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1 AS num, 'a'
+  UNION
+  SELECT 2, 'b'
+  UNION
+  SELECT 3, 'c'
+  UNION
+  SELECT 4, 'd'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1, 'a' AS a
+  UNION
+  SELECT 2, 'b'
+  UNION
+  SELECT 3, 'c'
+  UNION
+  SELECT 4, 'd'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1 AS num, 'a' AS a
+  UNION
+  SELECT 2, 'b'
+  UNION
+  SELECT 3, 'c'
+  UNION
+  SELECT 4, 'd'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+-- SPARK-51113, UNION ALL
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1 AS num
+  UNION ALL
+  SELECT 2
+  UNION ALL
+  SELECT 3
+  UNION ALL
+  SELECT 4
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1
+  UNION ALL
+  SELECT 2
+  UNION ALL
+  SELECT 3
+  UNION ALL
+  SELECT 4
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 'a' AS a
+  UNION ALL
+  SELECT 'b'
+  UNION ALL
+  SELECT 'c'
+  UNION ALL
+  SELECT 'd'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 'a'
+  UNION ALL
+  SELECT 'b'
+  UNION ALL
+  SELECT 'c'
+  UNION ALL
+  SELECT 'd'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1, 'a'
+  UNION ALL
+  SELECT 2, 'b'
+  UNION ALL
+  SELECT 3, 'c'
+  UNION ALL
+  SELECT 4, 'd'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1 AS num, 'a'
+  UNION ALL
+  SELECT 2, 'b'
+  UNION ALL
+  SELECT 3, 'c'
+  UNION ALL
+  SELECT 4, 'd'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1, 'a' AS a
+  UNION ALL
+  SELECT 2, 'b'
+  UNION ALL
+  SELECT 3, 'c'
+  UNION ALL
+  SELECT 4, 'd'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1 AS num, 'a' AS a
+  UNION ALL
+  SELECT 2, 'b'
+  UNION ALL
+  SELECT 3, 'c'
+  UNION ALL
+  SELECT 4, 'd'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+-- SPARK-51113, EXCEPT
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1 AS num
+  EXCEPT
+  SELECT 2
+  EXCEPT
+  SELECT 1
+  EXCEPT
+  SELECT 2
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1
+  EXCEPT
+  SELECT 2
+  EXCEPT
+  SELECT 1
+  EXCEPT
+  SELECT 2
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 'a' AS a
+  EXCEPT
+  SELECT 'b'
+  EXCEPT
+  SELECT 'a'
+  EXCEPT
+  SELECT 'b'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 'a'
+  EXCEPT
+  SELECT 'b'
+  EXCEPT
+  SELECT 'a'
+  EXCEPT
+  SELECT 'b'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1, 'a'
+  EXCEPT
+  SELECT 2, 'b'
+  EXCEPT
+  SELECT 1, 'a'
+  EXCEPT
+  SELECT 2, 'b'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1 AS num, 'a'
+  EXCEPT
+  SELECT 2, 'b'
+  EXCEPT
+  SELECT 1, 'a'
+  EXCEPT
+  SELECT 2, 'b'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1, 'a' AS a
+  EXCEPT
+  SELECT 2, 'b'
+  EXCEPT
+  SELECT 1, 'a'
+  EXCEPT
+  SELECT 2, 'b'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1 AS num, 'a' AS a
+  EXCEPT
+  SELECT 2, 'b'
+  EXCEPT
+  SELECT 1, 'a'
+  EXCEPT
+  SELECT 2, 'b'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+-- SPARK-51113, INTERSECT
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1 AS num
+  INTERSECT
+  SELECT 1
+  INTERSECT
+  SELECT 2
+  INTERSECT
+  SELECT 2
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 1
+  INTERSECT
+  SELECT 1
+  INTERSECT
+  SELECT 2
+  INTERSECT
+  SELECT 2
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 'a' AS a
+  INTERSECT
+  SELECT 'a'
+  INTERSECT
+  SELECT 'b'
+  INTERSECT
+  SELECT 'b'
+;
+SELECT * FROM v1;
+DROP VIEW v1;
+
+CREATE TEMPORARY VIEW v1 AS
+  SELECT 'a'
+  INTERSECT
+  SELECT 'a'
+  INTERSECT
+  SELECT 'b'
+  INTERSECT
+  SELECT 'b'

Review Comment:
   What I mean by that is the issue is not specific to view and UNION. I've 
found that it affects EXECUTE IMMEDIATE, and EXCEPT/INTERSECT, and maybe even 
something else.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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

Reply via email to