summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2018-04-16 08:55:15 -0700
committerIgor Babaev <igor@askmonty.org>2018-04-16 08:55:15 -0700
commit612850782d6d8bbe44d2b153a045b9a8afc624ef (patch)
tree5c3e447e90a9bec7272831acb63c21caeb6d4543
parent224f7af911487f25cc2f768b66a1cce1b3833fd0 (diff)
downloadmariadb-git-612850782d6d8bbe44d2b153a045b9a8afc624ef.tar.gz
MDEV-15571 Wrong results with big_tables=1 and CTE
The cause of this bug was the same as for the bug mdev-15575. Fixed by the patch for the latter.
-rw-r--r--mysql-test/r/cte_recursive.result13
-rw-r--r--mysql-test/t/cte_recursive.test17
2 files changed, 30 insertions, 0 deletions
diff --git a/mysql-test/r/cte_recursive.result b/mysql-test/r/cte_recursive.result
index 55cd30ff236..01443bb6494 100644
--- a/mysql-test/r/cte_recursive.result
+++ b/mysql-test/r/cte_recursive.result
@@ -3080,3 +3080,16 @@ a
129
130
set big_tables=default;
+#
+# MDEV-1571: Setting user variable in recursive CTE
+#
+set big_tables=1;
+with recursive qn as
+(
+select 1 as a from dual
+union all
+select a*2000 from qn where a<10000000000000000000
+)
+select * from qn;
+ERROR 22003: BIGINT value is out of range in '`qn`.`a` * 2000'
+set big_tables=default;
diff --git a/mysql-test/t/cte_recursive.test b/mysql-test/t/cte_recursive.test
index 373d6ca97cd..008c8ea9296 100644
--- a/mysql-test/t/cte_recursive.test
+++ b/mysql-test/t/cte_recursive.test
@@ -2109,3 +2109,20 @@ with recursive qn as
select * from qn;
set big_tables=default;
+
+--echo #
+--echo # MDEV-1571: Setting user variable in recursive CTE
+--echo #
+
+set big_tables=1;
+
+--error ER_DATA_OUT_OF_RANGE
+with recursive qn as
+(
+ select 1 as a from dual
+ union all
+ select a*2000 from qn where a<10000000000000000000
+)
+select * from qn;
+
+set big_tables=default;