summaryrefslogtreecommitdiff
path: root/sql/sql_derived.cc
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2019-02-27 15:53:25 +0100
committerOleksandr Byelkin <sanja@mariadb.com>2019-02-28 17:21:43 +0100
commita352dc57c8582be60c5c0b89f19c6f0cde78bd50 (patch)
tree769ef4a713bde45ce16d2a44f6c700f4fa325dc6 /sql/sql_derived.cc
parent0ad598a00b17008b0c0702db40948b14d7eee0d5 (diff)
downloadmariadb-git-bb-5.5-MDEV-17055.tar.gz
MDEV-17055: Server crashes in find_order_in_list upon 2nd (3rd) execution of SP with UPDATEbb-5.5-MDEV-17055
1. Always drop merged_for_insert flag on cleanup (there could be errors which prevent TABLE to be assigned) 2. Make more precise cleanup of select parts which was touched
Diffstat (limited to 'sql/sql_derived.cc')
-rw-r--r--sql/sql_derived.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc
index e990eba8e54..1709669d8a2 100644
--- a/sql/sql_derived.cc
+++ b/sql/sql_derived.cc
@@ -90,6 +90,7 @@ mysql_handle_derived(LEX *lex, uint phases)
sl= sl->next_select_in_list())
{
TABLE_LIST *cursor= sl->get_table_list();
+ sl->changed_elements|= TOUCHED_SEL_DERIVED;
/*
DT_MERGE_FOR_INSERT is not needed for views/derived tables inside
subqueries. Views and derived tables of subqueries should be
@@ -1002,8 +1003,7 @@ bool mysql_derived_reinit(THD *thd, LEX *lex, TABLE_LIST *derived)
derived->get_unit()));
st_select_lex_unit *unit= derived->get_unit();
- if (derived->table)
- derived->merged_for_insert= FALSE;
+ derived->merged_for_insert= FALSE;
unit->unclean();
unit->types.empty();
/* for derived tables & PS (which can't be reset by Item_subquery) */