should be it
This commit is contained in:
39
external/duckdb/test/sql/join/right_outer/right_join_complex_null.test
vendored
Normal file
39
external/duckdb/test/sql/join/right_outer/right_join_complex_null.test
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
# name: test/sql/join/right_outer/right_join_complex_null.test
|
||||
# description: Test RIGHT OUTER JOIN on complex expression involving NULL
|
||||
# group: [right_outer]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
pragma verify_external
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t0(c0 DATE, PRIMARY KEY(c0));
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t1(c0 VARCHAR DEFAULT(DATE '1969-12-10'), c1 DOUBLE DEFAULT(0.16338108651823613));
|
||||
|
||||
statement ok
|
||||
INSERT INTO t1(c1) VALUES (true);
|
||||
|
||||
statement ok
|
||||
INSERT INTO t1(c0) VALUES (TIMESTAMP '1969-12-13 07:02:08');
|
||||
|
||||
statement ok
|
||||
INSERT INTO t0(c0) VALUES (DATE '1970-01-01'), (TIMESTAMP '1969-12-13 17:49:43');
|
||||
|
||||
query I
|
||||
SELECT MAX('a') FROM t0 JOIN t1 ON ((t0.c0)<=(((NULL)-(t1.rowid))::DATE));
|
||||
----
|
||||
NULL
|
||||
|
||||
query I
|
||||
SELECT MAX('a') FROM t0 RIGHT JOIN t1 ON ((t0.c0)<=(((NULL)-(t1.rowid))::DATE));
|
||||
----
|
||||
a
|
||||
|
||||
statement error
|
||||
SELECT MAX(agg0) FROM (SELECT MAX('a') AS agg0 FROM t0 RIGHT JOIN t1 ON ((t0.c0)<=(((NULL)-(t1.rowid)))) WHERE t1.c0 UNION ALL SELECT MAX('a') AS agg0 FROM t0 RIGHT JOIN t1 ON ((t0.c0)<=(((NULL)-(t1.rowid)))) WHERE (NOT t1.c0) UNION ALL SELECT MAX('a') AS agg0 FROM t0 RIGHT JOIN t1 ON ((t0.c0)<=(((NULL)-(t1.rowid)))) WHERE ((t1.c0) IS NULL)) as asdf;
|
||||
----
|
||||
<REGEX>:.*Binder Error.*Cannot compare values.*
|
||||
156
external/duckdb/test/sql/join/right_outer/test_right_outer.test
vendored
Normal file
156
external/duckdb/test/sql/join/right_outer/test_right_outer.test
vendored
Normal file
@@ -0,0 +1,156 @@
|
||||
# name: test/sql/join/right_outer/test_right_outer.test
|
||||
# description: Test RIGHT OUTER JOIN
|
||||
# group: [right_outer]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
pragma verify_external
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (1, 2), (2, 3), (3, 4)
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers2(k INTEGER, l INTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers2 VALUES (1, 10), (2, 20)
|
||||
|
||||
# all these tests are equivalent to the tests in test_left_outer.test
|
||||
# but with the tables reversed and using a right outer join instead
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON integers.i=integers2.k ORDER BY i
|
||||
----
|
||||
1 2 1 10
|
||||
2 3 2 20
|
||||
3 4 NULL NULL
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON integers.i=integers2.k WHERE k IS NOT NULL ORDER BY i
|
||||
----
|
||||
1 2 1 10
|
||||
2 3 2 20
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON integers.i=integers2.k AND integers2.k IS NOT NULL ORDER BY i
|
||||
----
|
||||
1 2 1 10
|
||||
2 3 2 20
|
||||
3 4 NULL NULL
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON i=1 ORDER BY i, k;
|
||||
----
|
||||
1 2 1 10
|
||||
1 2 2 20
|
||||
2 3 NULL NULL
|
||||
3 4 NULL NULL
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON 1=1 ORDER BY i, k;
|
||||
----
|
||||
1 2 1 10
|
||||
1 2 2 20
|
||||
2 3 1 10
|
||||
2 3 2 20
|
||||
3 4 1 10
|
||||
3 4 2 20
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON 1=2 ORDER BY i;
|
||||
----
|
||||
1 2 NULL NULL
|
||||
2 3 NULL NULL
|
||||
3 4 NULL NULL
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON NULL<>NULL ORDER BY i;
|
||||
----
|
||||
1 2 NULL NULL
|
||||
2 3 NULL NULL
|
||||
3 4 NULL NULL
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON i=1 ORDER BY i, k;
|
||||
----
|
||||
1 2 1 10
|
||||
1 2 2 20
|
||||
2 3 NULL NULL
|
||||
3 4 NULL NULL
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON l=20 ORDER BY i, k;
|
||||
----
|
||||
1 2 2 20
|
||||
2 3 2 20
|
||||
3 4 2 20
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON l>0 ORDER BY i, k;
|
||||
----
|
||||
1 2 1 10
|
||||
1 2 2 20
|
||||
2 3 1 10
|
||||
2 3 2 20
|
||||
3 4 1 10
|
||||
3 4 2 20
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON i=1 OR l=20 ORDER BY i, k;
|
||||
----
|
||||
1 2 1 10
|
||||
1 2 2 20
|
||||
2 3 2 20
|
||||
3 4 2 20
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON i=4 OR l=17 ORDER BY i;
|
||||
----
|
||||
1 2 NULL NULL
|
||||
2 3 NULL NULL
|
||||
3 4 NULL NULL
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON i+l=21 ORDER BY i;
|
||||
----
|
||||
1 2 2 20
|
||||
2 3 NULL NULL
|
||||
3 4 NULL NULL
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON i+l>12 ORDER BY i, k;
|
||||
----
|
||||
1 2 2 20
|
||||
2 3 2 20
|
||||
3 4 1 10
|
||||
3 4 2 20
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON integers.i<integers2.k WHERE integers.i <= 2 ORDER BY i
|
||||
----
|
||||
1 2 2 20
|
||||
2 3 NULL NULL
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM integers2 RIGHT OUTER JOIN integers ON integers.i<integers2.k AND integers.i<integers2.l WHERE integers.i <= 2 ORDER BY i
|
||||
----
|
||||
1 2 2 20
|
||||
2 3 NULL NULL
|
||||
|
||||
query IIII
|
||||
SELECT integers.*, integers2.* FROM (SELECT * FROM integers2 WHERE k=100) integers2 RIGHT OUTER JOIN integers ON integers.i<integers2.k ORDER BY i
|
||||
----
|
||||
1 2 NULL NULL
|
||||
2 3 NULL NULL
|
||||
3 4 NULL NULL
|
||||
|
||||
query II
|
||||
select t1.*, t2.* from (values (2), (3)) t2(i) right join (values(1), (2)) t1(i) on t1.i=t2.i AND t1.i+t2.i=4 ORDER BY 1, 2;
|
||||
----
|
||||
1 NULL
|
||||
2 2
|
||||
Reference in New Issue
Block a user