summaryrefslogtreecommitdiff
path: root/mysql-test/t/join_nested.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/t/join_nested.test')
-rw-r--r--mysql-test/t/join_nested.test36
1 files changed, 31 insertions, 5 deletions
diff --git a/mysql-test/t/join_nested.test b/mysql-test/t/join_nested.test
index 166aab99ccd..deda56eb8ee 100644
--- a/mysql-test/t/join_nested.test
+++ b/mysql-test/t/join_nested.test
@@ -462,7 +462,6 @@ SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
LEFT JOIN
(t1,t2)
ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
-
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
FROM (t3,t4)
LEFT JOIN
@@ -1196,9 +1195,6 @@ SELECT COUNT(*)
DROP TABLE t1,t2,t3,t4,t5;
-# !!!Remove the following if brackets after having merged the code of MWL#128
-if (`SELECT @@join_cache_level=1`)
-{
#
# BUG#49322: Nested left joins + not-exist optimization
#
@@ -1238,7 +1234,37 @@ SELECT t1.pk, t1.a, t2.pk, t2.a,t3.pk, t3.a
WHERE t3.pk IS NULL;
DROP TABLE t1, t2, t3;
-}
+
+
+#
+# LP BUG#817360: Nested left joins + not-exist optimization
+#
+
+CREATE TABLE t1 (a int NOT NULL );
+INSERT INTO t1 VALUES (9), (9);
+
+CREATE TABLE t2 (a int NOT NULL );
+INSERT INTO t2 VALUES (9);
+
+CREATE TABLE t3 (a int NOT NULL, b int);
+INSERT INTO t3 VALUES (19,9);
+
+CREATE TABLE t4 (b int) ;
+
+SELECT * FROM t1 LEFT JOIN
+ ((t2 LEFT JOIN t3 ON t2.a=t3.b) LEFT JOIN t4 ON t3.a=t4.b)
+ ON t1.a=t2.a;
+SELECT * FROM t1 LEFT JOIN
+ ((t2 LEFT JOIN t3 ON t2.a=t3.b) LEFT JOIN t4 ON t3.a=t4.b)
+ ON t1.a=t2.a
+ WHERE t3.a IS NULL;
+EXPLAIN EXTENDED
+SELECT * FROM t1 LEFT JOIN
+ ((t2 LEFT JOIN t3 ON t2.a=t3.b) LEFT JOIN t4 ON t3.a=t4.b)
+ ON t1.a=t2.a
+ WHERE t3.a IS NULL;
+
+DROP TABLE t1,t2,t3,t4;
--echo End of 5.0 tests