summaryrefslogtreecommitdiff
path: root/sql/sql_prepare.cc
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2016-09-24 21:04:54 -0700
committerIgor Babaev <igor@askmonty.org>2016-09-24 21:05:36 -0700
commit54efb080227cf3f79efb7ab2660bf66582cd07fd (patch)
tree91ffd40d0258b8143b6c1f42bc68221787ebe41f /sql/sql_prepare.cc
parent61ab7333db3b2dcc0e2b7d5b44c0692a6b0c3e8a (diff)
downloadmariadb-git-54efb080227cf3f79efb7ab2660bf66582cd07fd.tar.gz
Fixed bug mdev-10881
The server missed to call check_dependencies_in_with_clauses() when processing PREPARE ... FROM CREATE ... SELECT / INSERT ... SELECT with WITH clause before SELECT.
Diffstat (limited to 'sql/sql_prepare.cc')
-rw-r--r--sql/sql_prepare.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc
index eab2863588d..df15a629802 100644
--- a/sql/sql_prepare.cc
+++ b/sql/sql_prepare.cc
@@ -1777,6 +1777,9 @@ static bool mysql_test_create_table(Prepared_statement *stmt)
if (create_table_precheck(thd, tables, create_table))
DBUG_RETURN(TRUE);
+ if (check_dependencies_in_with_clauses(lex->with_clauses_list))
+ DBUG_RETURN(TRUE);
+
if (select_lex->item_list.elements)
{
/* Base table and temporary table are not in the same name space. */
@@ -2167,6 +2170,9 @@ static bool mysql_test_insert_select(Prepared_statement *stmt,
if (insert_precheck(stmt->thd, tables))
return 1;
+ if (check_dependencies_in_with_clauses(lex->with_clauses_list))
+ return 1;
+
/* store it, because mysql_insert_select_prepare_tester change it */
first_local_table= lex->select_lex.table_list.first;
DBUG_ASSERT(first_local_table != 0);