diff options
author | unknown <monty@mashka.mysql.fi> | 2002-12-05 03:40:33 +0200 |
---|---|---|
committer | unknown <monty@mashka.mysql.fi> | 2002-12-05 03:40:33 +0200 |
commit | 591b058518dcbc736398d64e8bfd1ac43099323e (patch) | |
tree | acbe11728f20cce01476a8928088773d8016fe76 /sql/log.cc | |
parent | 7280bddb710be4ac1c7acc9f9f7daaa2eea850ff (diff) | |
download | mariadb-git-591b058518dcbc736398d64e8bfd1ac43099323e.tar.gz |
Removed copying of parameters as this leads to memory leaks in embedded server.
Fixed 'not initialized' memory error.
mysql-test/mysql-test-run.sh:
Updates to be able to more easily use --valgrind
mysql-test/r/alter_table.result:
Added missing drop table
mysql-test/t/alter_table.test:
Added missing drop table
sql/field.cc:
Simple optimizations
sql/ha_innodb.cc:
Remove copying of parameters as this leads to memory leaks in MySQL.
Should be instead fixed by, in embedded server, make a temporary copy of
all parameters and free them on server-end
sql/log.cc:
Simple optimization
sql/mysql_priv.h:
Move external reference to struct to include file
sql/mysqld.cc:
Added safety asserts
sql/sql_class.cc:
Fixed non fatal 'not initialized memory reference error' in thread init
sql/sql_udf.cc:
Clear current_thd for global thread
strings/strto.c:
Simple optimization
Diffstat (limited to 'sql/log.cc')
-rw-r--r-- | sql/log.cc | 70 |
1 files changed, 37 insertions, 33 deletions
diff --git a/sql/log.cc b/sql/log.cc index 597985e8796..32dbdac1074 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -1053,40 +1053,44 @@ bool MYSQL_LOG::write(Log_event* event_info) No check for auto events flag here - this write method should never be called if auto-events are enabled */ - if (thd && thd->last_insert_id_used) + if (thd) { - Intvar_log_event e(thd,(uchar)LAST_INSERT_ID_EVENT,thd->last_insert_id); - e.set_log_pos(this); - if (thd->server_id) - e.server_id = thd->server_id; - if (e.write(file)) - goto err; - } - if (thd && thd->insert_id_used) - { - Intvar_log_event e(thd,(uchar)INSERT_ID_EVENT,thd->last_insert_id); - e.set_log_pos(this); - if (thd->server_id) - e.server_id = thd->server_id; - if (e.write(file)) - goto err; - } - if (thd && thd->rand_used) - { - Rand_log_event e(thd,thd->rand_saved_seed1,thd->rand_saved_seed2); - e.set_log_pos(this); - if (e.write(file)) - goto err; - } - if (thd && thd->variables.convert_set) - { - char buf[1024] = "SET CHARACTER SET "; - char* p = strend(buf); - p = strmov(p, thd->variables.convert_set->name); - Query_log_event e(thd, buf, (ulong)(p - buf), 0); - e.set_log_pos(this); - if (e.write(file)) - goto err; + if (thd->last_insert_id_used) + { + Intvar_log_event e(thd,(uchar) LAST_INSERT_ID_EVENT, + thd->last_insert_id); + e.set_log_pos(this); + if (thd->server_id) + e.server_id = thd->server_id; + if (e.write(file)) + goto err; + } + if (thd->insert_id_used) + { + Intvar_log_event e(thd,(uchar) INSERT_ID_EVENT,thd->last_insert_id); + e.set_log_pos(this); + if (thd->server_id) + e.server_id = thd->server_id; + if (e.write(file)) + goto err; + } + if (thd->rand_used) + { + Rand_log_event e(thd,thd->rand_saved_seed1,thd->rand_saved_seed2); + e.set_log_pos(this); + if (e.write(file)) + goto err; + } + if (thd->variables.convert_set) + { + char buf[256], *p; + p= strmov(strmov(buf, "SET CHARACTER SET "), + thd->variables.convert_set->name); + Query_log_event e(thd, buf, (ulong) (p - buf), 0); + e.set_log_pos(this); + if (e.write(file)) + goto err; + } } event_info->set_log_pos(this); if (event_info->write(file) || |