diff options
author | unknown <monty@mashka.mysql.fi> | 2002-12-05 16:38:49 +0200 |
---|---|---|
committer | unknown <monty@mashka.mysql.fi> | 2002-12-05 16:38:49 +0200 |
commit | fdb093fc476af146feaa6d4403db0c25bb6484d8 (patch) | |
tree | e7064c81623ddc900c1933e03b9ce1c1fe234ff6 /sql/sql_update.cc | |
parent | 5fdd9f878f3b4690e3f6f0710e5930a81fcd368a (diff) | |
download | mariadb-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.cc | 18 |
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; |