1
0
mirror of https://github.com/MariaDB/server.git synced 2025-09-02 09:41:40 +03:00

MDEV-3798: [SHOW] EXPLAIN UPDATE/DELETE, Memory leak in binlog.binlog_base64_flag:

- It turns out, there are statements that will call lex_start(thd->lex) 
  after parsing has been finished. lex_start() will set lex->explain=NULL,
  which will lose the pointer to already allocated Explain_plan object.
- To get rid of this, switch to lazy creation of lex->explain.  Now, it is 
  created only when we get a part ot query plan.
This commit is contained in:
Sergey Petrunya
2013-10-16 12:13:51 +04:00
parent 207f008220
commit 4bed7aa858
11 changed files with 18 additions and 7 deletions

View File

@@ -2201,8 +2201,6 @@ mysql_execute_command(THD *thd)
thd->mdl_context.release_transactional_locks();
}
create_explain_query(thd->lex, thd->mem_root);
#ifndef DBUG_OFF
if (lex->sql_command != SQLCOM_SET_OPTION)
DEBUG_SYNC(thd,"before_execute_sql_command");