summaryrefslogtreecommitdiff
path: root/sql/sql_prepare.cc
diff options
context:
space:
mode:
authormonty@mysql.com <>2004-05-05 12:40:33 +0300
committermonty@mysql.com <>2004-05-05 12:40:33 +0300
commit82c50dc49d5c1682acbea2b5009bbb801f62f87f (patch)
tree6e6ffba2ed63024160cb72abfd6ccf3c13172f03 /sql/sql_prepare.cc
parent7e3cf5958cf304d12c005eb06fdfb3f23b026645 (diff)
downloadmariadb-git-82c50dc49d5c1682acbea2b5009bbb801f62f87f.tar.gz
Delete Items created during Prepared Stat (memory leak bug) (Bug #3451)
Diffstat (limited to 'sql/sql_prepare.cc')
-rw-r--r--sql/sql_prepare.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc
index 4630380967e..b633687b07f 100644
--- a/sql/sql_prepare.cc
+++ b/sql/sql_prepare.cc
@@ -1485,9 +1485,7 @@ void mysql_stmt_execute(THD *thd, char *packet, uint packet_length)
thd->stmt_backup.set_statement(thd);
thd->set_statement(stmt);
-
reset_stmt_for_execute(stmt);
-
#ifndef EMBEDDED_LIBRARY
if (stmt->param_count)
{
@@ -1526,6 +1524,11 @@ void mysql_stmt_execute(THD *thd, char *packet, uint packet_length)
cleanup_items(stmt->free_list);
close_thread_tables(thd); // to close derived tables
thd->set_statement(&thd->stmt_backup);
+ /*
+ Free Items that were created during this execution of the PS by query
+ optimizer.
+ */
+ free_items(thd->free_list);
DBUG_VOID_RETURN;
set_params_data_err: