diff options
author | monty@mashka.mysql.fi <> | 2003-01-10 01:55:05 +0200 |
---|---|---|
committer | monty@mashka.mysql.fi <> | 2003-01-10 01:55:05 +0200 |
commit | 1bc3105da34c174f1ffe848a01e9cfb0d4ebc2ec (patch) | |
tree | 32ebd679eacd38dead4f046faa80fac1acd2b7f7 /sql/sql_load.cc | |
parent | 54ad6de1d9f8824bd92f817a873b8a13c70ea7c2 (diff) | |
download | mariadb-git-1bc3105da34c174f1ffe848a01e9cfb0d4ebc2ec.tar.gz |
Fixed core dump bug in str LIKE "%other_str%" where strings contained characters >= 128.
Fixed problem with replication LOAD DATA INFILE when using --old-rpl-compat.
When executing on master LOAD DATA and InnoDB failed with 'table full' error the binary log was corrupted.
Diffstat (limited to 'sql/sql_load.cc')
-rw-r--r-- | sql/sql_load.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sql/sql_load.cc b/sql/sql_load.cc index 6375ba46fd7..908ff8c6361 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -283,6 +283,20 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, { if (lf_info.wrote_create_file) { + /* + Make sure last block (the one which caused the error) gets logged. + This is needed because otherwise after write of + (to the binlog, not to read_info (which is a cache)) + Delete_file_log_event the bad block will remain in read_info. + At the end of mysql_load(), the destructor of read_info will call + end_io_cache() which will flush read_info, so we will finally have + this in the binlog: + Append_block # The last successfull block + Delete_file + Append_block # The failing block + which is nonsense. + */ + read_info.end_io_cache(); Delete_file_log_event d(thd, log_delayed); mysql_bin_log.write(&d); } |