summaryrefslogtreecommitdiff
path: root/sql/sql_update.cc
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2002-12-05 16:38:49 +0200
committerunknown <monty@mashka.mysql.fi>2002-12-05 16:38:49 +0200
commitfdb093fc476af146feaa6d4403db0c25bb6484d8 (patch)
treee7064c81623ddc900c1933e03b9ce1c1fe234ff6 /sql/sql_update.cc
parent5fdd9f878f3b4690e3f6f0710e5930a81fcd368a (diff)
downloadmariadb-git-fdb093fc476af146feaa6d4403db0c25bb6484d8.tar.gz
Copy arguments given to mysql_server_init()
Made keybuff_size longlong (To make show variables work similar on 32 and 64 bit systems) Fixed some 'not initalized variable errors' in multi-table-update. Fixed memory leak in multi-table-update. Now all tests works under valgrind without any errors. libmysqld/lib_sql.cc: Copy arguments given to mysql_server_init() mysql-test/r/temp_table.result: Update test results (after merge form 3.23) sql/handler.cc: Made keybuff_size longlong sql/mysql_priv.h: Made keybuff_size longlong sql/mysqld.cc: Made keybuff_size longlong sql/set_var.cc: Made keybuff_size longlong sql/set_var.h: Made keybuff_size longlong sql/sql_select.cc: Simple cleanup sql/sql_select.h: Make TMP_TABLE_PARAM to be allocated through Sql_alloc sql/sql_update.cc: Fixed some 'not initalized variable errors' in multi-table-update. Fixed memory leak in multi-table-update
Diffstat (limited to 'sql/sql_update.cc')
-rw-r--r--sql/sql_update.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/sql/sql_update.cc b/sql/sql_update.cc
index 887d4e0acc0..4eab38bebad 100644
--- a/sql/sql_update.cc
+++ b/sql/sql_update.cc
@@ -412,9 +412,10 @@ end:
multi_update::multi_update(THD *thd_arg, TABLE_LIST *table_list,
List<Item> *field_list, List<Item> *value_list,
enum enum_duplicates handle_duplicates_arg)
- :all_tables(table_list), thd(thd_arg), tmp_tables(0), updated(0),
- found(0), fields(field_list), values(value_list), table_count(0),
- handle_duplicates(handle_duplicates_arg), do_update(1)
+ :all_tables(table_list), update_tables(0), thd(thd_arg), tmp_tables(0),
+ updated(0), found(0), fields(field_list), values(value_list),
+ table_count(0), copy_field(0), handle_duplicates(handle_duplicates_arg),
+ do_update(1), trans_safe(0)
{}
@@ -594,9 +595,14 @@ multi_update::~multi_update()
if (tmp_tables)
{
- for (uint counter = 0; counter < table_count; counter++)
- if (tmp_tables[counter])
- free_tmp_table(thd,tmp_tables[counter]);
+ for (uint cnt = 0; cnt < table_count; cnt++)
+ {
+ if (tmp_tables[cnt])
+ {
+ free_tmp_table(thd, tmp_tables[cnt]);
+ tmp_table_param[cnt].cleanup();
+ }
+ }
}
if (copy_field)
delete [] copy_field;