diff options
author | unknown <serg@serg.mylan> | 2005-02-14 21:50:09 +0100 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2005-02-14 21:50:09 +0100 |
commit | 2d8b51991cb5d639254786edb6c446adbd4eb31c (patch) | |
tree | ea9dd08a255018554104b4f137dea7cfe36ece0a /client/mysqlbinlog.cc | |
parent | ff4e1476a91193bf5236cbdadeceac843f7bebf4 (diff) | |
parent | 9297872d75f4754df8bbf607e380fc6cf68251f1 (diff) | |
download | mariadb-git-2d8b51991cb5d639254786edb6c446adbd4eb31c.tar.gz |
manually merged
client/mysqlbinlog.cc:
Auto merged
configure.in:
Auto merged
include/my_global.h:
Auto merged
include/my_pthread.h:
Auto merged
innobase/trx/trx0trx.c:
Auto merged
mysql-test/include/varchar.inc:
Auto merged
mysql-test/r/bdb.result:
Auto merged
mysql-test/r/myisam.result:
Auto merged
mysql-test/r/mysqlbinlog2.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysql-test/t/user_var.test:
Auto merged
mysys/hash.c:
Auto merged
sql/item_func.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/log_event.h:
Auto merged
sql/set_var.h:
Auto merged
sql/slave.cc:
Auto merged
sql/slave.h:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_repl.cc:
Auto merged
sql/sql_repl.h:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_trigger.cc:
Auto merged
mysql-test/r/ctype_ucs.result:
ul
mysql-test/r/drop_temp_table.result:
ul
mysql-test/r/innodb.result:
ul
mysql-test/r/insert_select.result:
ul
mysql-test/r/mix_innodb_myisam_binlog.result:
ul
mysql-test/r/rpl_change_master.result:
ul
mysql-test/r/rpl_charset.result:
ul
mysql-test/r/rpl_error_ignored_table.result:
ul
mysql-test/r/rpl_flush_log_loop.result:
ul
mysql-test/r/rpl_flush_tables.result:
ul
mysql-test/r/rpl_loaddata.result:
ul
mysql-test/r/rpl_loaddata_rule_m.result:
ul
mysql-test/r/rpl_log.result:
ul
mysql-test/r/rpl_max_relay_size.result:
ul
mysql-test/r/rpl_relayrotate.result:
ul
mysql-test/r/rpl_replicate_do.result:
ul
mysql-test/r/rpl_rotate_logs.result:
ul
mysql-test/r/rpl_temporary.result:
ul
mysql-test/r/rpl_timezone.result:
ul
mysql-test/r/rpl_until.result:
ul
mysql-test/r/rpl_user_variables.result:
ul
mysql-test/r/user_var.result:
ul
Diffstat (limited to 'client/mysqlbinlog.cc')
-rw-r--r-- | client/mysqlbinlog.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/client/mysqlbinlog.cc b/client/mysqlbinlog.cc index 47fe90904dc..cedf837c9ab 100644 --- a/client/mysqlbinlog.cc +++ b/client/mysqlbinlog.cc @@ -1100,7 +1100,7 @@ at offset %lu ; this could be a log format error or read error", /* EOF can't be hit here normally, so it's a real error */ die("Could not read a Rotate_log_event event \ at offset %lu ; this could be a log format error or read error", - tmp_pos); + tmp_pos); } else break; @@ -1169,9 +1169,16 @@ static int dump_local_log_entries(const char* logname) Log_event* ev = Log_event::read_log_event(file, description_event); if (!ev) { - if (file->error) + /* + if binlog wasn't closed properly ("in use" flag is set) don't complain + about a corruption, but issue a "ROLLBACK" to annihilate half-logged + transaction. Otherwise, treat it as EOF and move to the next binlog. + */ + if (description_event->flags & LOG_EVENT_BINLOG_IN_USE_F) + fprintf(result_file, "ROLLBACK;\n"); + else if (file->error) { - fprintf(stderr, + fprintf(stderr, "Could not read entry at offset %s:" "Error in log format or read error\n", llstr(old_off,llbuff)); |