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.test44
1 files changed, 44 insertions, 0 deletions
diff --git a/mysql-test/t/join_nested.test b/mysql-test/t/join_nested.test
index 5b07d8966f1..166aab99ccd 100644
--- a/mysql-test/t/join_nested.test
+++ b/mysql-test/t/join_nested.test
@@ -1196,5 +1196,49 @@ 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
+#
+
+CREATE TABLE t1 (
+ pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ a int DEFAULT NULL,
+ KEY idx(a)
+);
+CREATE TABLE t2 (
+ pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ a int DEFAULT NULL,
+ KEY idx(a)
+);
+CREATE TABLE t3 (
+ pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ a int DEFAULT NULL,
+ KEY idx(a)
+);
+
+INSERT INTO t1 VALUES
+ (1,2), (2,7), (3,5), (4,7), (5,5), (6,NULL), (7,NULL), (8,9);
+INSERT INTO t2 VALUES
+ (1,NULL), (4,2), (5,2), (3,4), (2,8);
+INSERT INTO t3 VALUES
+ (1,9), (2,2), (3,5), (4,2), (5,7), (6,0), (7,5);
+
+SELECT t1.pk, t1.a, t2.pk, t2.a,t3.pk, t3.a
+ FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t3.a=t2.a) ON t2.a=t1.a;
+
+SELECT t1.pk, t1.a, t2.pk, t2.a,t3.pk, t3.a
+ FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t3.a=t2.a) ON t2.a=t1.a
+ WHERE t2.pk IS NULL;
+
+SELECT t1.pk, t1.a, t2.pk, t2.a,t3.pk, t3.a
+ FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t3.a=t2.a) ON t2.a=t1.a
+ WHERE t3.pk IS NULL;
+
+DROP TABLE t1, t2, t3;
+}
+
--echo End of 5.0 tests