From bcba95a8122f5bbe1f7da9adda03ce0f7456c554 Mon Sep 17 00:00:00 2001 From: Terry Kim Date: Tue, 9 Jul 2019 20:07:47 -0700 Subject: [PATCH 1/4] initial commit --- .../sql-tests/inputs/udf/udf-except-all.sql | 164 +++++++++ .../results/udf/udf-except-all.sql.out | 345 ++++++++++++++++++ 2 files changed, 509 insertions(+) create mode 100644 sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql create mode 100644 sql/core/src/test/resources/sql-tests/results/udf/udf-except-all.sql.out diff --git a/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql b/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql new file mode 100644 index 0000000000000..3ddd427d5d999 --- /dev/null +++ b/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql @@ -0,0 +1,164 @@ +--- This test file was converted from except-all.sql. +-- Note that currently registered UDF returns a string. So there are some differences, for instance +-- in string cast within UDF in Scala and Python. + +CREATE TEMPORARY VIEW tab1 AS SELECT * FROM VALUES + (0), (1), (2), (2), (2), (2), (3), (null), (null) AS tab1(c1); +CREATE TEMPORARY VIEW tab2 AS SELECT * FROM VALUES + (1), (2), (2), (3), (5), (5), (null) AS tab2(c1); +CREATE TEMPORARY VIEW tab3 AS SELECT * FROM VALUES + (1, 2), + (1, 2), + (1, 3), + (2, 3), + (2, 2) + AS tab3(k, v); +CREATE TEMPORARY VIEW tab4 AS SELECT * FROM VALUES + (1, 2), + (2, 3), + (2, 2), + (2, 2), + (2, 20) + AS tab4(k, v); + +-- Basic EXCEPT ALL +SELECT * FROM tab1 +EXCEPT ALL +SELECT * FROM tab2; + +-- MINUS ALL (synonym for EXCEPT) +SELECT * FROM tab1 +MINUS ALL +SELECT * FROM tab2; + +-- EXCEPT ALL same table in both branches +SELECT * FROM tab1 +EXCEPT ALL +SELECT * FROM tab2 WHERE udf(c1) IS NOT NULL; + +-- Empty left relation +SELECT * FROM tab1 WHERE udf(c1) > 5 +EXCEPT ALL +SELECT * FROM tab2; + +-- Empty right relation +SELECT * FROM tab1 +EXCEPT ALL +SELECT * FROM tab2 WHERE c1 > udf(6); + +-- Type Coerced ExceptAll +SELECT * FROM tab1 +EXCEPT ALL +SELECT CAST(udf(1) AS BIGINT); + +-- Error as types of two side are not compatible +SELECT * FROM tab1 +EXCEPT ALL +SELECT array(1); + +-- Basic +SELECT * FROM tab3 +EXCEPT ALL +SELECT * FROM tab4; + +-- Basic +SELECT * FROM tab4 +EXCEPT ALL +SELECT * FROM tab3; + +-- EXCEPT ALL + INTERSECT +SELECT * FROM tab4 +EXCEPT ALL +SELECT * FROM tab3 +INTERSECT DISTINCT +SELECT * FROM tab4; + +-- EXCEPT ALL + EXCEPT +SELECT * FROM tab4 +EXCEPT ALL +SELECT * FROM tab3 +EXCEPT DISTINCT +SELECT * FROM tab4; + +-- Chain of set operations +SELECT * FROM tab3 +EXCEPT ALL +SELECT * FROM tab4 +UNION ALL +SELECT * FROM tab3 +EXCEPT DISTINCT +SELECT * FROM tab4; + +-- Mismatch on number of columns across both branches +SELECT k FROM tab3 +EXCEPT ALL +SELECT k, v FROM tab4; + +-- Chain of set operations +SELECT * FROM tab3 +EXCEPT ALL +SELECT * FROM tab4 +UNION +SELECT * FROM tab3 +EXCEPT DISTINCT +SELECT * FROM tab4; + +-- Using MINUS ALL +SELECT * FROM tab3 +MINUS ALL +SELECT * FROM tab4 +UNION +SELECT * FROM tab3 +MINUS DISTINCT +SELECT * FROM tab4; + +-- Chain of set operations +SELECT * FROM tab3 +EXCEPT ALL +SELECT * FROM tab4 +EXCEPT DISTINCT +SELECT * FROM tab3 +EXCEPT DISTINCT +SELECT * FROM tab4; + +-- Join under except all. Should produce empty resultset since both left and right sets +-- are same. +SELECT * +FROM (SELECT udf(tab3.k), + udf(tab4.v) + FROM tab3 + JOIN tab4 + ON tab3.k = tab4.k) +EXCEPT ALL +SELECT * +FROM (SELECT udf(tab3.k), + udf(tab4.v) + FROM tab3 + JOIN tab4 + ON tab3.k = tab4.k); + +-- Join under except all (2) +SELECT * +FROM (SELECT udf(tab3.k), + udf(tab4.v) + FROM tab3 + JOIN tab4 + ON tab3.k = tab4.k) +EXCEPT ALL +SELECT * +FROM (SELECT udf(tab4.v) AS k, + udf(tab3.k) AS v + FROM tab3 + JOIN tab4 + ON tab3.k = tab4.k); + +-- Group by under ExceptAll +SELECT udf(v) FROM tab3 GROUP BY v +EXCEPT ALL +SELECT udf(k) FROM tab4 GROUP BY k; + +-- Clean-up +DROP VIEW IF EXISTS tab1; +DROP VIEW IF EXISTS tab2; +DROP VIEW IF EXISTS tab3; +DROP VIEW IF EXISTS tab4; diff --git a/sql/core/src/test/resources/sql-tests/results/udf/udf-except-all.sql.out b/sql/core/src/test/resources/sql-tests/results/udf/udf-except-all.sql.out new file mode 100644 index 0000000000000..d00eded2138ab --- /dev/null +++ b/sql/core/src/test/resources/sql-tests/results/udf/udf-except-all.sql.out @@ -0,0 +1,345 @@ +-- Automatically generated by SQLQueryTestSuite +-- Number of queries: 27 + + +-- !query 0 +CREATE TEMPORARY VIEW tab1 AS SELECT * FROM VALUES + (0), (1), (2), (2), (2), (2), (3), (null), (null) AS tab1(c1) +-- !query 0 schema +struct<> +-- !query 0 output + + + +-- !query 1 +CREATE TEMPORARY VIEW tab2 AS SELECT * FROM VALUES + (1), (2), (2), (3), (5), (5), (null) AS tab2(c1) +-- !query 1 schema +struct<> +-- !query 1 output + + + +-- !query 2 +CREATE TEMPORARY VIEW tab3 AS SELECT * FROM VALUES + (1, 2), + (1, 2), + (1, 3), + (2, 3), + (2, 2) + AS tab3(k, v) +-- !query 2 schema +struct<> +-- !query 2 output + + + +-- !query 3 +CREATE TEMPORARY VIEW tab4 AS SELECT * FROM VALUES + (1, 2), + (2, 3), + (2, 2), + (2, 2), + (2, 20) + AS tab4(k, v) +-- !query 3 schema +struct<> +-- !query 3 output + + + +-- !query 4 +SELECT * FROM tab1 +EXCEPT ALL +SELECT * FROM tab2 +-- !query 4 schema +struct +-- !query 4 output +0 +2 +2 +NULL + + +-- !query 5 +SELECT * FROM tab1 +MINUS ALL +SELECT * FROM tab2 +-- !query 5 schema +struct +-- !query 5 output +0 +2 +2 +NULL + + +-- !query 6 +SELECT * FROM tab1 +EXCEPT ALL +SELECT * FROM tab2 WHERE udf(c1) IS NOT NULL +-- !query 6 schema +struct +-- !query 6 output +0 +2 +2 +NULL + + +-- !query 7 +SELECT * FROM tab1 WHERE udf(c1) > 5 +EXCEPT ALL +SELECT * FROM tab2 +-- !query 7 schema +struct +-- !query 7 output + + + +-- !query 8 +SELECT * FROM tab1 +EXCEPT ALL +SELECT * FROM tab2 WHERE c1 > udf(6) +-- !query 8 schema +struct +-- !query 8 output +0 +1 +2 +2 +2 +2 +3 +NULL +NULL + + +-- !query 9 +SELECT * FROM tab1 +EXCEPT ALL +SELECT CAST(udf(1) AS BIGINT) +-- !query 9 schema +struct +-- !query 9 output +0 +2 +2 +2 +2 +3 +NULL +NULL + + +-- !query 10 +SELECT * FROM tab1 +EXCEPT ALL +SELECT array(1) +-- !query 10 schema +struct<> +-- !query 10 output +org.apache.spark.sql.AnalysisException +ExceptAll can only be performed on tables with the compatible column types. array <> int at the first column of the second table; + + +-- !query 11 +SELECT * FROM tab3 +EXCEPT ALL +SELECT * FROM tab4 +-- !query 11 schema +struct +-- !query 11 output +1 2 +1 3 + + +-- !query 12 +SELECT * FROM tab4 +EXCEPT ALL +SELECT * FROM tab3 +-- !query 12 schema +struct +-- !query 12 output +2 2 +2 20 + + +-- !query 13 +SELECT * FROM tab4 +EXCEPT ALL +SELECT * FROM tab3 +INTERSECT DISTINCT +SELECT * FROM tab4 +-- !query 13 schema +struct +-- !query 13 output +2 2 +2 20 + + +-- !query 14 +SELECT * FROM tab4 +EXCEPT ALL +SELECT * FROM tab3 +EXCEPT DISTINCT +SELECT * FROM tab4 +-- !query 14 schema +struct +-- !query 14 output + + + +-- !query 15 +SELECT * FROM tab3 +EXCEPT ALL +SELECT * FROM tab4 +UNION ALL +SELECT * FROM tab3 +EXCEPT DISTINCT +SELECT * FROM tab4 +-- !query 15 schema +struct +-- !query 15 output +1 3 + + +-- !query 16 +SELECT k FROM tab3 +EXCEPT ALL +SELECT k, v FROM tab4 +-- !query 16 schema +struct<> +-- !query 16 output +org.apache.spark.sql.AnalysisException +ExceptAll can only be performed on tables with the same number of columns, but the first table has 1 columns and the second table has 2 columns; + + +-- !query 17 +SELECT * FROM tab3 +EXCEPT ALL +SELECT * FROM tab4 +UNION +SELECT * FROM tab3 +EXCEPT DISTINCT +SELECT * FROM tab4 +-- !query 17 schema +struct +-- !query 17 output +1 3 + + +-- !query 18 +SELECT * FROM tab3 +MINUS ALL +SELECT * FROM tab4 +UNION +SELECT * FROM tab3 +MINUS DISTINCT +SELECT * FROM tab4 +-- !query 18 schema +struct +-- !query 18 output +1 3 + + +-- !query 19 +SELECT * FROM tab3 +EXCEPT ALL +SELECT * FROM tab4 +EXCEPT DISTINCT +SELECT * FROM tab3 +EXCEPT DISTINCT +SELECT * FROM tab4 +-- !query 19 schema +struct +-- !query 19 output + + + +-- !query 20 +SELECT * +FROM (SELECT udf(tab3.k), + udf(tab4.v) + FROM tab3 + JOIN tab4 + ON tab3.k = tab4.k) +EXCEPT ALL +SELECT * +FROM (SELECT udf(tab3.k), + udf(tab4.v) + FROM tab3 + JOIN tab4 + ON tab3.k = tab4.k) +-- !query 20 schema +struct +-- !query 20 output + + + +-- !query 21 +SELECT * +FROM (SELECT udf(tab3.k), + udf(tab4.v) + FROM tab3 + JOIN tab4 + ON tab3.k = tab4.k) +EXCEPT ALL +SELECT * +FROM (SELECT udf(tab4.v) AS k, + udf(tab3.k) AS v + FROM tab3 + JOIN tab4 + ON tab3.k = tab4.k) +-- !query 21 schema +struct +-- !query 21 output +1 2 +1 2 +1 2 +2 20 +2 20 +2 3 +2 3 + + +-- !query 22 +SELECT udf(v) FROM tab3 GROUP BY v +EXCEPT ALL +SELECT udf(k) FROM tab4 GROUP BY k +-- !query 22 schema +struct +-- !query 22 output +3 + + +-- !query 23 +DROP VIEW IF EXISTS tab1 +-- !query 23 schema +struct<> +-- !query 23 output + + + +-- !query 24 +DROP VIEW IF EXISTS tab2 +-- !query 24 schema +struct<> +-- !query 24 output + + + +-- !query 25 +DROP VIEW IF EXISTS tab3 +-- !query 25 schema +struct<> +-- !query 25 output + + + +-- !query 26 +DROP VIEW IF EXISTS tab4 +-- !query 26 schema +struct<> +-- !query 26 output + From a512ef8c29b01568fed3aaaaf1ad80335e568f31 Mon Sep 17 00:00:00 2001 From: Terry Kim Date: Tue, 9 Jul 2019 20:11:42 -0700 Subject: [PATCH 2/4] fix comments. --- .../src/test/resources/sql-tests/inputs/udf/udf-except-all.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql b/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql index 3ddd427d5d999..9254cb63b4146 100644 --- a/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql +++ b/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql @@ -1,4 +1,4 @@ ---- This test file was converted from except-all.sql. +-- This test file was converted from except-all.sql. -- Note that currently registered UDF returns a string. So there are some differences, for instance -- in string cast within UDF in Scala and Python. From a09df4b5dc90c93f05d68fd6695ccb2de663895c Mon Sep 17 00:00:00 2001 From: Terry Kim Date: Wed, 10 Jul 2019 19:22:43 -0700 Subject: [PATCH 3/4] Addressing PR comments --- .../resources/sql-tests/inputs/udf/udf-except-all.sql | 10 ++++++---- .../sql-tests/results/udf/udf-except-all.sql.out | 8 ++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql b/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql index 9254cb63b4146..0e032427d1d51 100644 --- a/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql +++ b/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql @@ -32,6 +32,8 @@ MINUS ALL SELECT * FROM tab2; -- EXCEPT ALL same table in both branches +-- Note that there will one less NULL in the result compared to the non-udf result +-- because udf converts null to a string "null". SELECT * FROM tab1 EXCEPT ALL SELECT * FROM tab2 WHERE udf(c1) IS NOT NULL; @@ -128,14 +130,14 @@ FROM (SELECT udf(tab3.k), udf(tab4.v) FROM tab3 JOIN tab4 - ON tab3.k = tab4.k) + ON udf(tab3.k) = udf(tab4.k)) EXCEPT ALL SELECT * FROM (SELECT udf(tab3.k), udf(tab4.v) FROM tab3 JOIN tab4 - ON tab3.k = tab4.k); + ON udf(tab3.k) = udf(tab4.k)); -- Join under except all (2) SELECT * @@ -143,14 +145,14 @@ FROM (SELECT udf(tab3.k), udf(tab4.v) FROM tab3 JOIN tab4 - ON tab3.k = tab4.k) + ON udf(tab3.k) = udf(tab4.k)) EXCEPT ALL SELECT * FROM (SELECT udf(tab4.v) AS k, udf(tab3.k) AS v FROM tab3 JOIN tab4 - ON tab3.k = tab4.k); + ON udf(tab3.k) = udf(tab4.k)); -- Group by under ExceptAll SELECT udf(v) FROM tab3 GROUP BY v diff --git a/sql/core/src/test/resources/sql-tests/results/udf/udf-except-all.sql.out b/sql/core/src/test/resources/sql-tests/results/udf/udf-except-all.sql.out index d00eded2138ab..1cbe36f7b3357 100644 --- a/sql/core/src/test/resources/sql-tests/results/udf/udf-except-all.sql.out +++ b/sql/core/src/test/resources/sql-tests/results/udf/udf-except-all.sql.out @@ -263,14 +263,14 @@ FROM (SELECT udf(tab3.k), udf(tab4.v) FROM tab3 JOIN tab4 - ON tab3.k = tab4.k) + ON udf(tab3.k) = udf(tab4.k)) EXCEPT ALL SELECT * FROM (SELECT udf(tab3.k), udf(tab4.v) FROM tab3 JOIN tab4 - ON tab3.k = tab4.k) + ON udf(tab3.k) = udf(tab4.k)) -- !query 20 schema struct -- !query 20 output @@ -283,14 +283,14 @@ FROM (SELECT udf(tab3.k), udf(tab4.v) FROM tab3 JOIN tab4 - ON tab3.k = tab4.k) + ON udf(tab3.k) = udf(tab4.k)) EXCEPT ALL SELECT * FROM (SELECT udf(tab4.v) AS k, udf(tab3.k) AS v FROM tab3 JOIN tab4 - ON tab3.k = tab4.k) + ON udf(tab3.k) = udf(tab4.k)) -- !query 21 schema struct -- !query 21 output From 2c8cc194fb6552cebe6cd1333cb88374c4a156a8 Mon Sep 17 00:00:00 2001 From: Terry Kim Date: Wed, 17 Jul 2019 22:34:25 -0700 Subject: [PATCH 4/4] Address PR comments --- .../sql-tests/inputs/udf/udf-except-all.sql | 94 +++++++------ .../results/udf/udf-except-all.sql.out | 125 +++++++++--------- 2 files changed, 108 insertions(+), 111 deletions(-) diff --git a/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql b/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql index 0e032427d1d51..71e05e67698c8 100644 --- a/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql +++ b/sql/core/src/test/resources/sql-tests/inputs/udf/udf-except-all.sql @@ -1,6 +1,4 @@ -- This test file was converted from except-all.sql. --- Note that currently registered UDF returns a string. So there are some differences, for instance --- in string cast within UDF in Scala and Python. CREATE TEMPORARY VIEW tab1 AS SELECT * FROM VALUES (0), (1), (2), (2), (2), (2), (3), (null), (null) AS tab1(c1); @@ -22,74 +20,72 @@ CREATE TEMPORARY VIEW tab4 AS SELECT * FROM VALUES AS tab4(k, v); -- Basic EXCEPT ALL -SELECT * FROM tab1 +SELECT udf(c1) FROM tab1 EXCEPT ALL -SELECT * FROM tab2; +SELECT udf(c1) FROM tab2; -- MINUS ALL (synonym for EXCEPT) -SELECT * FROM tab1 +SELECT udf(c1) FROM tab1 MINUS ALL -SELECT * FROM tab2; +SELECT udf(c1) FROM tab2; -- EXCEPT ALL same table in both branches --- Note that there will one less NULL in the result compared to the non-udf result --- because udf converts null to a string "null". -SELECT * FROM tab1 +SELECT udf(c1) FROM tab1 EXCEPT ALL -SELECT * FROM tab2 WHERE udf(c1) IS NOT NULL; +SELECT udf(c1) FROM tab2 WHERE udf(c1) IS NOT NULL; -- Empty left relation -SELECT * FROM tab1 WHERE udf(c1) > 5 +SELECT udf(c1) FROM tab1 WHERE udf(c1) > 5 EXCEPT ALL -SELECT * FROM tab2; +SELECT udf(c1) FROM tab2; -- Empty right relation -SELECT * FROM tab1 +SELECT udf(c1) FROM tab1 EXCEPT ALL -SELECT * FROM tab2 WHERE c1 > udf(6); +SELECT udf(c1) FROM tab2 WHERE udf(c1 > udf(6)); -- Type Coerced ExceptAll -SELECT * FROM tab1 +SELECT udf(c1) FROM tab1 EXCEPT ALL SELECT CAST(udf(1) AS BIGINT); -- Error as types of two side are not compatible -SELECT * FROM tab1 +SELECT udf(c1) FROM tab1 EXCEPT ALL SELECT array(1); -- Basic -SELECT * FROM tab3 +SELECT udf(k), v FROM tab3 EXCEPT ALL -SELECT * FROM tab4; +SELECT k, udf(v) FROM tab4; -- Basic -SELECT * FROM tab4 +SELECT k, udf(v) FROM tab4 EXCEPT ALL -SELECT * FROM tab3; +SELECT udf(k), v FROM tab3; -- EXCEPT ALL + INTERSECT -SELECT * FROM tab4 +SELECT udf(k), udf(v) FROM tab4 EXCEPT ALL -SELECT * FROM tab3 +SELECT udf(k), udf(v) FROM tab3 INTERSECT DISTINCT -SELECT * FROM tab4; +SELECT udf(k), udf(v) FROM tab4; -- EXCEPT ALL + EXCEPT -SELECT * FROM tab4 +SELECT udf(k), v FROM tab4 EXCEPT ALL -SELECT * FROM tab3 +SELECT k, udf(v) FROM tab3 EXCEPT DISTINCT -SELECT * FROM tab4; +SELECT udf(k), udf(v) FROM tab4; -- Chain of set operations -SELECT * FROM tab3 +SELECT k, udf(v) FROM tab3 EXCEPT ALL -SELECT * FROM tab4 +SELECT udf(k), udf(v) FROM tab4 UNION ALL -SELECT * FROM tab3 +SELECT udf(k), v FROM tab3 EXCEPT DISTINCT -SELECT * FROM tab4; +SELECT k, udf(v) FROM tab4; -- Mismatch on number of columns across both branches SELECT k FROM tab3 @@ -97,59 +93,59 @@ EXCEPT ALL SELECT k, v FROM tab4; -- Chain of set operations -SELECT * FROM tab3 +SELECT udf(k), udf(v) FROM tab3 EXCEPT ALL -SELECT * FROM tab4 +SELECT udf(k), udf(v) FROM tab4 UNION -SELECT * FROM tab3 +SELECT udf(k), udf(v) FROM tab3 EXCEPT DISTINCT -SELECT * FROM tab4; +SELECT udf(k), udf(v) FROM tab4; -- Using MINUS ALL -SELECT * FROM tab3 +SELECT udf(k), udf(v) FROM tab3 MINUS ALL -SELECT * FROM tab4 +SELECT k, udf(v) FROM tab4 UNION -SELECT * FROM tab3 +SELECT udf(k), udf(v) FROM tab3 MINUS DISTINCT -SELECT * FROM tab4; +SELECT k, udf(v) FROM tab4; -- Chain of set operations -SELECT * FROM tab3 +SELECT k, udf(v) FROM tab3 EXCEPT ALL -SELECT * FROM tab4 +SELECT udf(k), v FROM tab4 EXCEPT DISTINCT -SELECT * FROM tab3 +SELECT k, udf(v) FROM tab3 EXCEPT DISTINCT -SELECT * FROM tab4; +SELECT udf(k), v FROM tab4; -- Join under except all. Should produce empty resultset since both left and right sets -- are same. SELECT * -FROM (SELECT udf(tab3.k), +FROM (SELECT tab3.k, udf(tab4.v) FROM tab3 JOIN tab4 - ON udf(tab3.k) = udf(tab4.k)) + ON udf(tab3.k) = tab4.k) EXCEPT ALL SELECT * FROM (SELECT udf(tab3.k), - udf(tab4.v) + tab4.v FROM tab3 JOIN tab4 - ON udf(tab3.k) = udf(tab4.k)); + ON tab3.k = udf(tab4.k)); -- Join under except all (2) SELECT * -FROM (SELECT udf(tab3.k), +FROM (SELECT udf(udf(tab3.k)), udf(tab4.v) FROM tab3 JOIN tab4 - ON udf(tab3.k) = udf(tab4.k)) + ON udf(udf(tab3.k)) = udf(tab4.k)) EXCEPT ALL SELECT * FROM (SELECT udf(tab4.v) AS k, - udf(tab3.k) AS v + udf(udf(tab3.k)) AS v FROM tab3 JOIN tab4 ON udf(tab3.k) = udf(tab4.k)); diff --git a/sql/core/src/test/resources/sql-tests/results/udf/udf-except-all.sql.out b/sql/core/src/test/resources/sql-tests/results/udf/udf-except-all.sql.out index 1cbe36f7b3357..b7bfad0e538ac 100644 --- a/sql/core/src/test/resources/sql-tests/results/udf/udf-except-all.sql.out +++ b/sql/core/src/test/resources/sql-tests/results/udf/udf-except-all.sql.out @@ -49,11 +49,11 @@ struct<> -- !query 4 -SELECT * FROM tab1 +SELECT udf(c1) FROM tab1 EXCEPT ALL -SELECT * FROM tab2 +SELECT udf(c1) FROM tab2 -- !query 4 schema -struct +struct -- !query 4 output 0 2 @@ -62,11 +62,11 @@ NULL -- !query 5 -SELECT * FROM tab1 +SELECT udf(c1) FROM tab1 MINUS ALL -SELECT * FROM tab2 +SELECT udf(c1) FROM tab2 -- !query 5 schema -struct +struct -- !query 5 output 0 2 @@ -75,34 +75,35 @@ NULL -- !query 6 -SELECT * FROM tab1 +SELECT udf(c1) FROM tab1 EXCEPT ALL -SELECT * FROM tab2 WHERE udf(c1) IS NOT NULL +SELECT udf(c1) FROM tab2 WHERE udf(c1) IS NOT NULL -- !query 6 schema -struct +struct -- !query 6 output 0 2 2 NULL +NULL -- !query 7 -SELECT * FROM tab1 WHERE udf(c1) > 5 +SELECT udf(c1) FROM tab1 WHERE udf(c1) > 5 EXCEPT ALL -SELECT * FROM tab2 +SELECT udf(c1) FROM tab2 -- !query 7 schema -struct +struct -- !query 7 output -- !query 8 -SELECT * FROM tab1 +SELECT udf(c1) FROM tab1 EXCEPT ALL -SELECT * FROM tab2 WHERE c1 > udf(6) +SELECT udf(c1) FROM tab2 WHERE udf(c1 > udf(6)) -- !query 8 schema -struct +struct -- !query 8 output 0 1 @@ -116,11 +117,11 @@ NULL -- !query 9 -SELECT * FROM tab1 +SELECT udf(c1) FROM tab1 EXCEPT ALL SELECT CAST(udf(1) AS BIGINT) -- !query 9 schema -struct +struct -- !query 9 output 0 2 @@ -133,7 +134,7 @@ NULL -- !query 10 -SELECT * FROM tab1 +SELECT udf(c1) FROM tab1 EXCEPT ALL SELECT array(1) -- !query 10 schema @@ -144,62 +145,62 @@ ExceptAll can only be performed on tables with the compatible column types. arra -- !query 11 -SELECT * FROM tab3 +SELECT udf(k), v FROM tab3 EXCEPT ALL -SELECT * FROM tab4 +SELECT k, udf(v) FROM tab4 -- !query 11 schema -struct +struct -- !query 11 output 1 2 1 3 -- !query 12 -SELECT * FROM tab4 +SELECT k, udf(v) FROM tab4 EXCEPT ALL -SELECT * FROM tab3 +SELECT udf(k), v FROM tab3 -- !query 12 schema -struct +struct -- !query 12 output 2 2 2 20 -- !query 13 -SELECT * FROM tab4 +SELECT udf(k), udf(v) FROM tab4 EXCEPT ALL -SELECT * FROM tab3 +SELECT udf(k), udf(v) FROM tab3 INTERSECT DISTINCT -SELECT * FROM tab4 +SELECT udf(k), udf(v) FROM tab4 -- !query 13 schema -struct +struct -- !query 13 output 2 2 2 20 -- !query 14 -SELECT * FROM tab4 +SELECT udf(k), v FROM tab4 EXCEPT ALL -SELECT * FROM tab3 +SELECT k, udf(v) FROM tab3 EXCEPT DISTINCT -SELECT * FROM tab4 +SELECT udf(k), udf(v) FROM tab4 -- !query 14 schema -struct +struct -- !query 14 output -- !query 15 -SELECT * FROM tab3 +SELECT k, udf(v) FROM tab3 EXCEPT ALL -SELECT * FROM tab4 +SELECT udf(k), udf(v) FROM tab4 UNION ALL -SELECT * FROM tab3 +SELECT udf(k), v FROM tab3 EXCEPT DISTINCT -SELECT * FROM tab4 +SELECT k, udf(v) FROM tab4 -- !query 15 schema -struct +struct -- !query 15 output 1 3 @@ -216,83 +217,83 @@ ExceptAll can only be performed on tables with the same number of columns, but t -- !query 17 -SELECT * FROM tab3 +SELECT udf(k), udf(v) FROM tab3 EXCEPT ALL -SELECT * FROM tab4 +SELECT udf(k), udf(v) FROM tab4 UNION -SELECT * FROM tab3 +SELECT udf(k), udf(v) FROM tab3 EXCEPT DISTINCT -SELECT * FROM tab4 +SELECT udf(k), udf(v) FROM tab4 -- !query 17 schema -struct +struct -- !query 17 output 1 3 -- !query 18 -SELECT * FROM tab3 +SELECT udf(k), udf(v) FROM tab3 MINUS ALL -SELECT * FROM tab4 +SELECT k, udf(v) FROM tab4 UNION -SELECT * FROM tab3 +SELECT udf(k), udf(v) FROM tab3 MINUS DISTINCT -SELECT * FROM tab4 +SELECT k, udf(v) FROM tab4 -- !query 18 schema -struct +struct -- !query 18 output 1 3 -- !query 19 -SELECT * FROM tab3 +SELECT k, udf(v) FROM tab3 EXCEPT ALL -SELECT * FROM tab4 +SELECT udf(k), v FROM tab4 EXCEPT DISTINCT -SELECT * FROM tab3 +SELECT k, udf(v) FROM tab3 EXCEPT DISTINCT -SELECT * FROM tab4 +SELECT udf(k), v FROM tab4 -- !query 19 schema -struct +struct -- !query 19 output -- !query 20 SELECT * -FROM (SELECT udf(tab3.k), +FROM (SELECT tab3.k, udf(tab4.v) FROM tab3 JOIN tab4 - ON udf(tab3.k) = udf(tab4.k)) + ON udf(tab3.k) = tab4.k) EXCEPT ALL SELECT * FROM (SELECT udf(tab3.k), - udf(tab4.v) + tab4.v FROM tab3 JOIN tab4 - ON udf(tab3.k) = udf(tab4.k)) + ON tab3.k = udf(tab4.k)) -- !query 20 schema -struct +struct -- !query 20 output -- !query 21 SELECT * -FROM (SELECT udf(tab3.k), +FROM (SELECT udf(udf(tab3.k)), udf(tab4.v) FROM tab3 JOIN tab4 - ON udf(tab3.k) = udf(tab4.k)) + ON udf(udf(tab3.k)) = udf(tab4.k)) EXCEPT ALL SELECT * FROM (SELECT udf(tab4.v) AS k, - udf(tab3.k) AS v + udf(udf(tab3.k)) AS v FROM tab3 JOIN tab4 ON udf(tab3.k) = udf(tab4.k)) -- !query 21 schema -struct +struct -- !query 21 output 1 2 1 2 @@ -308,7 +309,7 @@ SELECT udf(v) FROM tab3 GROUP BY v EXCEPT ALL SELECT udf(k) FROM tab4 GROUP BY k -- !query 22 schema -struct +struct -- !query 22 output 3