From 017f7897dcaa93ce844d5a07ea530312697b8375 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 12 Mar 2005 23:31:52 -0800 Subject: join_outer.result, join_outer.test: Added a test case for bug #9017. item_cmpfunc.h: A wrong not_null_tables method for Item_cond_xor caused a conversion of a left join into an inner join that was not valid. sql/item_cmpfunc.h: A wrong not_null_tables method for Item_cond_xor caused a conversion of a left join into an inner join that was not valid. mysql-test/t/join_outer.test: Added a test case for bug #9017. mysql-test/r/join_outer.result: Added a test case for bug #9017. --- mysql-test/t/join_outer.test | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'mysql-test/t/join_outer.test') diff --git a/mysql-test/t/join_outer.test b/mysql-test/t/join_outer.test index 8096176a744..2ed7086746f 100644 --- a/mysql-test/t/join_outer.test +++ b/mysql-test/t/join_outer.test @@ -595,3 +595,22 @@ SELECT invoice.id, invoice.text_id, text_table.text_data WHERE (invoice.id LIKE '%' OR text_table.text_data LIKE '%'); DROP TABLE invoice, text_table; + +# +# Test for bug #9017: left join mistakingly converted to inner join +# + +CREATE TABLE t1 (a int PRIMARY KEY, b int); +CREATE TABLE t2 (a int PRIMARY KEY, b int); + +INSERT INTO t1 VALUES (1,1), (2,1), (3,1), (4,2); +INSERT INTO t2 VALUES (1,2), (2,2); + +SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a; +SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE t1.b=1; +SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a + WHERE t1.b=1 XOR (NOT ISNULL(t2.a) AND t2.b=1); + +DROP TABLE t1,t2; + + -- cgit v1.2.1