summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2018-04-25 07:58:46 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2018-04-25 07:59:25 +0300
commit9477a2a9ba17c0db362e2bb39d5048e369096f39 (patch)
tree822c938585709a1bdf2262ece3167f6e0a911e94
parente3fb8e95692fcb554d83a76c5dd6e0b9a6c62728 (diff)
parentf033fbd9f2366619c52186a1a902066495539141 (diff)
downloadmariadb-git-9477a2a9ba17c0db362e2bb39d5048e369096f39.tar.gz
Merge 10.2 into 10.3
-rw-r--r--mysql-test/main/cte_recursive.result5
-rw-r--r--mysql-test/main/cte_recursive.test7
-rw-r--r--mysql-test/main/disabled.def1
-rw-r--r--sql/sql_select.cc2
4 files changed, 12 insertions, 3 deletions
diff --git a/mysql-test/main/cte_recursive.result b/mysql-test/main/cte_recursive.result
index 48f67f259da..93fe8a99c16 100644
--- a/mysql-test/main/cte_recursive.result
+++ b/mysql-test/main/cte_recursive.result
@@ -3089,16 +3089,19 @@ set big_tables=default;
#
# MDEV-15571: using recursive cte with big_tables enabled
#
+create table t1 (a bigint);
+insert into t1 values(1);
set big_tables=1;
with recursive qn as
(
-select 1 as a from dual
+select a from t1
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;
+drop table t1;
#
# MDEV-15556: using recursive cte with big_tables enabled
# when recursive tables are accessed by key
diff --git a/mysql-test/main/cte_recursive.test b/mysql-test/main/cte_recursive.test
index 1d4e328081b..0647e6c15c3 100644
--- a/mysql-test/main/cte_recursive.test
+++ b/mysql-test/main/cte_recursive.test
@@ -2114,12 +2114,15 @@ set big_tables=default;
--echo # MDEV-15571: using recursive cte with big_tables enabled
--echo #
+create table t1 (a bigint);
+insert into t1 values(1);
+
set big_tables=1;
--error ER_DATA_OUT_OF_RANGE
with recursive qn as
(
- select 1 as a from dual
+ select a from t1
union all
select a*2000 from qn where a<10000000000000000000
)
@@ -2127,6 +2130,8 @@ select * from qn;
set big_tables=default;
+drop table t1;
+
--echo #
--echo # MDEV-15556: using recursive cte with big_tables enabled
--echo # when recursive tables are accessed by key
diff --git a/mysql-test/main/disabled.def b/mysql-test/main/disabled.def
index fcba3054972..b489139a59f 100644
--- a/mysql-test/main/disabled.def
+++ b/mysql-test/main/disabled.def
@@ -21,4 +21,3 @@ innodb-wl5522-debug-zip : broken upstream
innodb_bug12902967 : broken upstream
file_contents : MDEV-6526 these files are not installed anymore
max_statement_time : cannot possibly work, depends on timing
-cte_recursive : Merge problem (MDEV-15575)
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 9a36ef725cc..320e6318e4c 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -1605,6 +1605,8 @@ JOIN::optimize_inner()
/* Convert all outer joins to inner joins if possible */
conds= simplify_joins(this, join_list, conds, TRUE, FALSE);
+ if (thd->is_error())
+ DBUG_RETURN(1);
if (select_lex->save_leaf_tables(thd))
DBUG_RETURN(1);
build_bitmap_for_nested_joins(join_list, 0);