summaryrefslogtreecommitdiff
path: root/mysql-test/t/cte_nonrecursive.test
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2017-11-05 18:45:12 -0800
committerIgor Babaev <igor@askmonty.org>2017-11-05 18:46:05 -0800
commite0cd6f4b0767b62723f9e332b94d8f34f59edbbc (patch)
tree5a402814d48cc560130c8fd6bc8fc2171fd4595a /mysql-test/t/cte_nonrecursive.test
parent8f2e8cf0cb9e427fa6d9b85b0c0c805e992eb385 (diff)
downloadmariadb-git-e0cd6f4b0767b62723f9e332b94d8f34f59edbbc.tar.gz
Fixed bugs: mdev-13780 CTE not found, mdev-14184 recursive CTE not found
The support of embedded CTEs was not correct in the cases when embedded CTEs were used multiple times. The problems occurred with both non-recursive (bug mdev-13780) and recursive (bug mdev-14184) embedded CTEs.
Diffstat (limited to 'mysql-test/t/cte_nonrecursive.test')
-rw-r--r--mysql-test/t/cte_nonrecursive.test28
1 files changed, 28 insertions, 0 deletions
diff --git a/mysql-test/t/cte_nonrecursive.test b/mysql-test/t/cte_nonrecursive.test
index 57b7ae1658f..c9639f50a19 100644
--- a/mysql-test/t/cte_nonrecursive.test
+++ b/mysql-test/t/cte_nonrecursive.test
@@ -743,3 +743,31 @@ eval $q;
eval explain $q;
DROP TABLE t1,t2;
+
+--echo #
+--echo # MDEV-13780: tower of embedding CTEs with multiple usage of them
+--echo #
+
+create table t1 (a int);
+insert into t1 values (3), (2), (4), (7), (1), (2), (5);
+
+let $q=
+with cte_e as
+(
+ with cte_o as
+ (
+ with cte_i as (select * from t1 where a < 7)
+ select * from cte_i where a > 1
+ )
+ select * from cte_o as cto_o1 where a < 3
+ union
+ select * from cte_o as cto_o2 where a > 4
+)
+select * from cte_e as cte_e1 where a > 1
+union
+select * from cte_e as cte_e2;
+
+eval $q;
+eval explain extended $q;
+
+drop table t1;