Fix for memory leaks introduced with the push of patch for bug#22740.

Original patch did not have these leaks, they were introduced later
during manual applying of the patch.
parent 52e614c5
......@@ -1811,16 +1811,21 @@ Event_job_data::compile(THD *thd, MEM_ROOT *mem_root)
DBUG_PRINT("error", ("error during compile or thd->is_fatal_error: %d",
thd->is_fatal_error));
/*
Free lex associated resources
QQ: Do we really need all this stuff here?
The first thing we do after parse error is freeing sp_head to
ensure that we have restored original memroot.
*/
if (lex.sphead)
{
/* Clean up after failed stored procedure/function */
delete lex.sphead;
lex.sphead= NULL;
}
lex.unit.cleanup();
sql_print_error("SCHEDULER: Error during compilation of %s.%s or "
"thd->is_fatal_error: %d",
dbname.str, name.str, thd->is_fatal_error);
lex.unit.cleanup();
delete lex.sphead;
sphead= lex.sphead= NULL;
ret= EVEX_COMPILE_ERROR;
goto done;
}
......
......@@ -322,6 +322,8 @@ Event_worker_thread::run(THD *thd, Event_queue_element_for_exec *event)
job_data->dbname.str, job_data->name.str,
job_data->definer.str);
else if (ret == EVEX_MICROSECOND_UNSUP)
sql_print_information("SCHEDULER: MICROSECOND is not supported");
end:
delete job_data;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment