should be it
This commit is contained in:
127
external/duckdb/test/sql/setops/test_setops.test
vendored
Normal file
127
external/duckdb/test/sql/setops/test_setops.test
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
# name: test/sql/setops/test_setops.test
|
||||
# description: Test UNION/EXCEPT/INTERSECT
|
||||
# group: [setops]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
query I
|
||||
SELECT 1 UNION ALL SELECT 2
|
||||
----
|
||||
1
|
||||
2
|
||||
|
||||
query IT
|
||||
SELECT 1, 'a' UNION ALL SELECT 2, 'b'
|
||||
----
|
||||
1 a
|
||||
2 b
|
||||
|
||||
query IT
|
||||
SELECT 1, 'a' UNION ALL SELECT 2, 'b' UNION ALL SELECT 3, 'c' order by 1
|
||||
----
|
||||
1 a
|
||||
2 b
|
||||
3 c
|
||||
|
||||
query IT
|
||||
SELECT 1, 'a' UNION ALL SELECT 2, 'b' UNION ALL SELECT 3, 'c' UNION ALL SELECT 4, 'd' order by 1
|
||||
----
|
||||
1 a
|
||||
2 b
|
||||
3 c
|
||||
4 d
|
||||
|
||||
# UNION/EXCEPT/INTERSECT with NULL values
|
||||
query I
|
||||
SELECT NULL UNION SELECT NULL
|
||||
----
|
||||
NULL
|
||||
|
||||
query I
|
||||
SELECT NULL EXCEPT SELECT NULL
|
||||
----
|
||||
|
||||
query I
|
||||
SELECT NULL INTERSECT SELECT NULL
|
||||
----
|
||||
NULL
|
||||
|
||||
# create tables
|
||||
statement ok
|
||||
CREATE TABLE test (a INTEGER, b INTEGER);
|
||||
|
||||
statement ok
|
||||
INSERT INTO test VALUES (11, 1), (12, 1), (13, 2)
|
||||
|
||||
# UNION ALL, no unique results
|
||||
query I
|
||||
SELECT a FROM test WHERE a < 13 UNION ALL SELECT a FROM test WHERE a = 13
|
||||
----
|
||||
11
|
||||
12
|
||||
13
|
||||
|
||||
query I
|
||||
SELECT b FROM test WHERE a < 13 UNION ALL SELECT b FROM test WHERE a > 11
|
||||
----
|
||||
1
|
||||
1
|
||||
1
|
||||
2
|
||||
|
||||
# mixing types, should error
|
||||
query I
|
||||
SELECT 1 UNION ALL SELECT 'asdf'
|
||||
----
|
||||
1
|
||||
asdf
|
||||
|
||||
query T
|
||||
SELECT NULL UNION ALL SELECT 'asdf'
|
||||
----
|
||||
NULL
|
||||
asdf
|
||||
|
||||
# only UNION, distinct results
|
||||
query I
|
||||
SELECT 1 UNION SELECT 1
|
||||
----
|
||||
1
|
||||
|
||||
query IT
|
||||
SELECT 1, 'a' UNION SELECT 2, 'b' UNION SELECT 3, 'c' UNION SELECT 1, 'a' order by 1
|
||||
----
|
||||
1 a
|
||||
2 b
|
||||
3 c
|
||||
|
||||
query I
|
||||
SELECT b FROM test WHERE a < 13 UNION SELECT b FROM test WHERE a > 11 ORDER BY 1
|
||||
----
|
||||
1
|
||||
2
|
||||
|
||||
# mixed fun
|
||||
query IT
|
||||
SELECT 1, 'a' UNION ALL SELECT 1, 'a' UNION SELECT 2, 'b' UNION SELECT 1, 'a' ORDER BY 1
|
||||
----
|
||||
1 a
|
||||
2 b
|
||||
|
||||
query IT
|
||||
SELECT 1, 'a' UNION ALL SELECT 1, 'a' UNION SELECT 2, 'b' UNION SELECT 1, 'a' ORDER BY 1 DESC
|
||||
----
|
||||
2 b
|
||||
1 a
|
||||
|
||||
|
||||
# EXCEPT ALL / INTERSECT ALL
|
||||
query II
|
||||
select x, count(*) as c
|
||||
from ((select * from (values(1),(2),(2),(3),(3),(3),(4),(4),(4),(4)) s(x) except all select * from (values(1),(3),(3)) t(x)) intersect all select * from (values(2),(2),(2),(4),(3),(3)) u(x)) s
|
||||
group by x order by x
|
||||
----
|
||||
2 2
|
||||
3 1
|
||||
4 1
|
||||
Reference in New Issue
Block a user