1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
# name: test/sql/join/left_outer/left_join_issue_15316.test
# description: Issue #15316: Left join should strip tree if filter statically evaluates to false
# group: [left_outer]
statement ok
set explain_output='optimized_only';
statement ok
PRAGMA enable_verification
statement ok
CREATE OR REPLACE TABLE big_table AS
SELECT i.range AS col1,
CAST(random() * 1000 AS INTEGER) AS col2
FROM range(100) i;
statement ok
CREATE OR REPLACE TABLE single_col_table AS
SELECT i.range AS col1
FROM range(50) i;
query II
explain SELECT *
FROM big_table c
LEFT OUTER JOIN single_col_table hd ON hd.col1=c.col1
AND (
FALSE
);
----
logical_opt <REGEX>:.*CROSS_PRODUCT.*
# RHS contains multiple tables
statement ok
CREATE TABLE integers1 AS SELECT * FROM (VALUES (1), (2), (3)) tbl(i);
statement ok
CREATE TABLE integers2 AS SELECT * FROM (VALUES (1, '1'), (2, '2'), (3, '3')) tbl(i, s);
statement ok
CREATE TABLE integers3 AS SELECT * FROM (VALUES (1, '4'), (2, '5'), (3, '6')) tbl(i, s);
query III
SELECT
i1.i AS i1_i,
i2.s,
i3.i AS i3_i
FROM
integers1 i1
LEFT OUTER JOIN (integers2 i2 LEFT OUTER JOIN integers3 i3 ON i2.i = i3.i) on false;
----
1 NULL NULL
2 NULL NULL
3 NULL NULL
|