diff options
author | Igor Babaev <igor@askmonty.org> | 2018-04-16 08:55:15 -0700 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2018-04-16 08:55:15 -0700 |
commit | 612850782d6d8bbe44d2b153a045b9a8afc624ef (patch) | |
tree | 5c3e447e90a9bec7272831acb63c21caeb6d4543 | |
parent | 224f7af911487f25cc2f768b66a1cce1b3833fd0 (diff) | |
download | mariadb-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.result | 13 | ||||
-rw-r--r-- | mysql-test/t/cte_recursive.test | 17 |
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; |