summaryrefslogtreecommitdiff
path: root/mysql-test/t/join_nested.test
diff options
context:
space:
mode:
authorSergey Petrunya <psergey@askmonty.org>2013-05-04 00:56:50 +0400
committerSergey Petrunya <psergey@askmonty.org>2013-05-04 00:56:50 +0400
commitb3720ff7553ced6208737482d3410183cab4a545 (patch)
tree48b0bcc2fa08ee393d58febeede900cfa4d768cd /mysql-test/t/join_nested.test
parent6ed00c4d8a90129e7098bcb5fad5b01332e9882c (diff)
downloadmariadb-git-b3720ff7553ced6208737482d3410183cab4a545.tar.gz
MDEV-621: LP:693329 - Assertion `!is_interleave_error' failed on low optimizer_search_depth
- When restore_prev_nj_state() is called for the table that is the last remaining child of a nested join, do not leave that nested join's bit in join->cur_embedding_map.
Diffstat (limited to 'mysql-test/t/join_nested.test')
-rw-r--r--mysql-test/t/join_nested.test24
1 files changed, 24 insertions, 0 deletions
diff --git a/mysql-test/t/join_nested.test b/mysql-test/t/join_nested.test
index 3168e95f620..7b7d9236835 100644
--- a/mysql-test/t/join_nested.test
+++ b/mysql-test/t/join_nested.test
@@ -1287,3 +1287,27 @@ SET optimizer_switch=@save_optimizer_switch;
--echo End of 5.0 tests
+--echo #
+--echo # MDEV-621: LP:693329 - Assertion `!is_interleave_error' failed on low optimizer_search_depth
+--echo #
+set @tmp_mdev621= @@optimizer_search_depth;
+SET SESSION optimizer_search_depth = 4;
+
+CREATE TABLE t1 (f1 int,f2 int,f3 int,f4 int) ;
+INSERT IGNORE INTO t1 VALUES (0,0,2,0),(NULL,0,2,0);
+CREATE TABLE t2 (f1 int) ;
+CREATE TABLE t3 (f3 int,PRIMARY KEY (f3)) ;
+CREATE TABLE t4 (f5 int) ;
+CREATE TABLE t5 (f2 int) ;
+
+SELECT alias2.f4 FROM t1 AS alias1
+LEFT JOIN t1 AS alias2
+ LEFT JOIN t2 AS alias3
+ LEFT JOIN t3 AS alias4 ON alias3.f1 = alias4.f3
+ ON alias2.f1
+LEFT JOIN t4 AS alias5
+ JOIN t5 ON alias5.f5
+ON alias2.f3 ON alias1.f2;
+DROP TABLE t1,t2,t3,t4,t5;
+set optimizer_search_depth= @tmp_mdev621;
+