diff --git a/sql/opt_range.cc b/sql/opt_range.cc index fef32dbb69d265700c3ce66d27ed3801390774a8..3226dc9607b47598425a727261ac844a6421b985 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -3703,7 +3703,7 @@ get_mm_leaf(PARAM *param, COND *conf_func, Field *field, KEY_PART *key_part, /* We need to restore the runtime mem_root of the thread in this - function becuase it evaluates the value of its argument, while + function because it evaluates the value of its argument, while the argument can be any, e.g. a subselect. The subselect items, in turn, assume that all the memory allocated during the evaluation has the same life span as the item itself. diff --git a/sql/sp_head.cc b/sql/sp_head.cc index 825ec34e410047c5360a43b74dc616eb29ee9712..d075c86f8cd11937e572b52d0dbf08048b6d9678 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -1474,13 +1474,6 @@ sp_lex_keeper::reset_lex_and_exec_core(THD *thd, uint *nextp, they want to store some value in local variable, pass return value and etc... So their life time should be longer than one instruction. - Probably we can call destructors for most of them then we are leaving - routine. But this won't help much as they are allocated in main query - MEM_ROOT anyway. So they all go to global thd->free_list. - - May be we can use some other MEM_ROOT for this purprose ??? - - What else should we do for cleanup ? cleanup_items() is called in sp_head::execute() */ return res;