mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-17055: Server crashes in find_order_in_list upon 2nd (3rd) execution of SP with UPDATE
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
This commit is contained in:
@ -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) */
|
||||
|
Reference in New Issue
Block a user