Loading sql/sp_head.cc +16 −5 Original line number Diff line number Diff line Loading @@ -942,11 +942,12 @@ int sp_head::execute(THD *thd) */ thd->stmt_arena= i; /* will binlog this separately */ if (thd->prelocked_mode == NON_PRELOCKED) //TODO: change to event union? { /* Will write this SP statement into binlog separately (TODO: consider changing the condition to "not inside event union") */ if (thd->prelocked_mode == NON_PRELOCKED) thd->user_var_events_alloc= thd->mem_root; } ret= i->execute(thd, &ip); Loading @@ -960,6 +961,16 @@ int sp_head::execute(THD *thd) cleanup_items(i->free_list); i->state= Query_arena::EXECUTED; /* If we've set thd->user_var_events_alloc to mem_root of this SP statement, clean all the events allocated in it. */ if (thd->prelocked_mode == NON_PRELOCKED) { reset_dynamic(&thd->user_var_events); thd->user_var_events_alloc= NULL;//DEBUG } /* we should cleanup free_list and memroot, used by instruction */ thd->free_items(); free_root(&execute_mem_root, MYF(0)); Loading Loading
sql/sp_head.cc +16 −5 Original line number Diff line number Diff line Loading @@ -942,11 +942,12 @@ int sp_head::execute(THD *thd) */ thd->stmt_arena= i; /* will binlog this separately */ if (thd->prelocked_mode == NON_PRELOCKED) //TODO: change to event union? { /* Will write this SP statement into binlog separately (TODO: consider changing the condition to "not inside event union") */ if (thd->prelocked_mode == NON_PRELOCKED) thd->user_var_events_alloc= thd->mem_root; } ret= i->execute(thd, &ip); Loading @@ -960,6 +961,16 @@ int sp_head::execute(THD *thd) cleanup_items(i->free_list); i->state= Query_arena::EXECUTED; /* If we've set thd->user_var_events_alloc to mem_root of this SP statement, clean all the events allocated in it. */ if (thd->prelocked_mode == NON_PRELOCKED) { reset_dynamic(&thd->user_var_events); thd->user_var_events_alloc= NULL;//DEBUG } /* we should cleanup free_list and memroot, used by instruction */ thd->free_items(); free_root(&execute_mem_root, MYF(0)); Loading