List: | Commits | « Previous MessageNext Message » | |
From: | He Zhenxing | Date: | September 29 2008 6:24am |
Subject: | bzr push into mysql-5.1 branch (hezx:2667) Bug#20129 Bug#21579 Bug#27526 Bug#30129 Bug#30394 Bug#31455 Bug#32052 Bug#32167 Bug#33300 Bug#33337 Bug#3... | ||
View as plain text |
2667 He Zhenxing 2008-09-29 [merge] Auto Merge removed: mysql-test/r/concurrent_innodb.result mysql-test/t/concurrent_innodb-master.opt mysql-test/t/concurrent_innodb.test added: mysql-test/include/have_case_insensitive_file_system.inc mysql-test/include/have_lowercase2.inc mysql-test/include/mysqlbinlog_row_engine.inc mysql-test/include/ps_ddl_1.inc mysql-test/lib/My/CoreDump.pm mysql-test/r/case_insensitive_file_system.require mysql-test/r/concurrent_innodb_safelog.result mysql-test/r/concurrent_innodb_unsafelog.result mysql-test/r/innodb-autoinc.result mysql-test/r/innodb_bug34300.result mysql-test/r/mysqlbinlog_row.result mysql-test/r/mysqlbinlog_row_big.result mysql-test/r/mysqlbinlog_row_innodb.result mysql-test/r/mysqlbinlog_row_myisam.result mysql-test/r/mysqlbinlog_row_trans.result mysql-test/std_data/corrupt_t1#P#p1.MYI mysql-test/std_data/corrupt_t1.MYI mysql-test/std_data/parts/t1_will_crash#P#p1_first_1024.MYD mysql-test/std_data/parts/t1_will_crash#P#p2.MYD mysql-test/std_data/parts/t1_will_crash#P#p2.MYI mysql-test/std_data/parts/t1_will_crash#P#p3.MYI mysql-test/std_data/parts/t1_will_crash#P#p4.MYI mysql-test/std_data/parts/t1_will_crash#P#p6.MYD mysql-test/std_data/parts/t1_will_crash#P#p6_2.MYD mysql-test/std_data/parts/t1_will_crash#P#p6_3.MYD mysql-test/suite/parts/inc/partition_mgm.inc mysql-test/suite/parts/r/partition_mgm_lc0_archive.result mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result mysql-test/suite/parts/r/partition_mgm_lc0_memory.result mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result mysql-test/suite/parts/r/partition_mgm_lc1_archive.result mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result mysql-test/suite/parts/r/partition_mgm_lc1_memory.result mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result mysql-test/suite/parts/r/partition_mgm_lc2_archive.result mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result mysql-test/suite/parts/r/partition_mgm_lc2_memory.result mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result mysql-test/suite/parts/r/partition_recover_myisam.result mysql-test/suite/parts/r/partition_repair_myisam.result mysql-test/suite/parts/t/partition_mgm_lc0_archive.test mysql-test/suite/parts/t/partition_mgm_lc0_innodb.test mysql-test/suite/parts/t/partition_mgm_lc0_memory.test mysql-test/suite/parts/t/partition_mgm_lc0_myisam.test mysql-test/suite/parts/t/partition_mgm_lc0_ndb.test mysql-test/suite/parts/t/partition_mgm_lc1_archive-master.opt mysql-test/suite/parts/t/partition_mgm_lc1_archive.test mysql-test/suite/parts/t/partition_mgm_lc1_innodb-master.opt mysql-test/suite/parts/t/partition_mgm_lc1_innodb.test mysql-test/suite/parts/t/partition_mgm_lc1_memory-master.opt mysql-test/suite/parts/t/partition_mgm_lc1_memory.test mysql-test/suite/parts/t/partition_mgm_lc1_myisam-master.opt mysql-test/suite/parts/t/partition_mgm_lc1_myisam.test mysql-test/suite/parts/t/partition_mgm_lc1_ndb-master.opt mysql-test/suite/parts/t/partition_mgm_lc1_ndb.test mysql-test/suite/parts/t/partition_mgm_lc2_archive-master.opt mysql-test/suite/parts/t/partition_mgm_lc2_archive.test mysql-test/suite/parts/t/partition_mgm_lc2_innodb-master.opt mysql-test/suite/parts/t/partition_mgm_lc2_innodb.test mysql-test/suite/parts/t/partition_mgm_lc2_memory-master.opt mysql-test/suite/parts/t/partition_mgm_lc2_memory.test mysql-test/suite/parts/t/partition_mgm_lc2_myisam-master.opt mysql-test/suite/parts/t/partition_mgm_lc2_myisam.test mysql-test/suite/parts/t/partition_mgm_lc2_ndb-master.opt mysql-test/suite/parts/t/partition_mgm_lc2_ndb.test mysql-test/suite/parts/t/partition_recover_myisam-master.opt mysql-test/suite/parts/t/partition_recover_myisam.test mysql-test/suite/parts/t/partition_repair_myisam.test mysql-test/suite/parts/t/partition_special_innodb-master.opt mysql-test/suite/rpl/r/rpl_plugin_load.result mysql-test/suite/rpl/t/rpl_plugin_load-master.opt mysql-test/suite/rpl/t/rpl_plugin_load-slave.opt mysql-test/suite/rpl/t/rpl_plugin_load.test mysql-test/suite/rpl/t/rpl_row_err_daisychain-master.opt mysql-test/suite/rpl/t/rpl_row_err_daisychain-slave.opt mysql-test/suite/rpl/t/rpl_truncate_7ndb_2-master.opt mysql-test/t/concurrent_innodb_safelog-master.opt mysql-test/t/concurrent_innodb_safelog.test mysql-test/t/concurrent_innodb_unsafelog-master.opt mysql-test/t/concurrent_innodb_unsafelog.test mysql-test/t/innodb-autoinc.test mysql-test/t/innodb_bug34300.test mysql-test/t/mysqlbinlog_row.test mysql-test/t/mysqlbinlog_row_big.test mysql-test/t/mysqlbinlog_row_innodb.test mysql-test/t/mysqlbinlog_row_myisam.test mysql-test/t/mysqlbinlog_row_trans.test modified: .bzrignore BUILD/check-cpu Makefile.am client/Makefile.am client/mysqlbinlog.cc configure.in include/my_sys.h include/myisam.h libmysqld/lib_sql.cc mysql-test/Makefile.am mysql-test/include/analyze-timeout.test mysql-test/include/concurrent.inc mysql-test/include/have_lowercase0.inc mysql-test/include/mtr_warnings.sql mysql-test/include/report-features.test mysql-test/lib/My/Config.pm mysql-test/lib/My/Find.pm mysql-test/lib/My/Platform.pm mysql-test/lib/mtr_cases.pm mysql-test/lib/mtr_gcov.pl mysql-test/mysql-test-run.pl mysql-test/r/binlog_format_basic.result mysql-test/r/character_set_connection_func.result mysql-test/r/completion_type_func.result mysql-test/r/concurrent_insert_func.result mysql-test/r/csv.result mysql-test/r/delay_key_write_func.result mysql-test/r/func_regexp.result mysql-test/r/general_log_file_basic.result mysql-test/r/general_log_file_func.result mysql-test/r/group_min_max.result mysql-test/r/handler_innodb.result mysql-test/r/innodb-autoinc-optimize.result mysql-test/r/innodb.result mysql-test/r/innodb_autoextend_increment_basic.result mysql-test/r/innodb_autoinc_lock_mode_func.result mysql-test/r/innodb_fast_shutdown_basic.result mysql-test/r/innodb_max_dirty_pages_pct_func.result mysql-test/r/innodb_mysql.result mysql-test/r/innodb_table_locks_func.result mysql-test/r/insert_update.result mysql-test/r/join.result mysql-test/r/key_buffer_size_func.result mysql-test/r/log_basic.result mysql-test/r/log_bin_trust_function_creators_func.result mysql-test/r/log_queries_not_using_indexes_basic.result mysql-test/r/log_state.result mysql-test/r/log_tables.result mysql-test/r/lowercase0.require mysql-test/r/max_allowed_packet_func.result mysql-test/r/max_seeks_for_key_func.result mysql-test/r/max_sort_length_func.result mysql-test/r/metadata.result mysql-test/r/myisam.result mysql-test/r/myisam_data_pointer_size_func.result mysql-test/r/myisam_stats_method_func.result mysql-test/r/partition.result mysql-test/r/partition_symlink.result mysql-test/r/profiling.result mysql-test/r/ps_1general.result mysql-test/r/ps_2myisam.result mysql-test/r/ps_3innodb.result mysql-test/r/ps_4heap.result mysql-test/r/ps_5merge.result mysql-test/r/ps_ddl.result mysql-test/r/query_cache_limit_func.result mysql-test/r/query_cache_type_func.result mysql-test/r/query_prealloc_size_func.result mysql-test/r/show_check.result mysql-test/r/slow_query_log_file_basic.result mysql-test/r/slow_query_log_file_func.result mysql-test/r/sp.result mysql-test/r/subselect.result mysql-test/r/subselect3.result mysql-test/r/symlink.result mysql-test/r/trigger-trans.result mysql-test/r/type_bit.result mysql-test/r/type_newdecimal.result mysql-test/r/variables-notembedded.result mysql-test/r/variables.result mysql-test/suite/binlog/combinations mysql-test/suite/bugs/combinations mysql-test/suite/federated/federated.result mysql-test/suite/federated/federated.test mysql-test/suite/funcs_1/datadict/processlist_val.inc mysql-test/suite/funcs_1/r/processlist_val_no_prot.result mysql-test/suite/funcs_1/r/processlist_val_ps.result mysql-test/suite/jp/std_data/jisx0208_sjis2.dat mysql-test/suite/jp/t/disabled.def mysql-test/suite/ndb/r/ndb_partition_key.result mysql-test/suite/ndb/r/ps_7ndb.result mysql-test/suite/ndb/t/ndb_partition_key.test mysql-test/suite/parts/inc/partition_alter4.inc mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result mysql-test/suite/parts/r/partition_alter1_1_innodb.result mysql-test/suite/parts/r/partition_alter1_1_myisam.result mysql-test/suite/parts/r/partition_alter1_2_innodb.result mysql-test/suite/parts/r/partition_alter1_2_myisam.result mysql-test/suite/parts/r/partition_alter2_innodb.result mysql-test/suite/parts/r/partition_alter2_myisam.result mysql-test/suite/parts/r/partition_alter4_innodb.result mysql-test/suite/parts/r/partition_alter4_myisam.result mysql-test/suite/parts/r/partition_basic_innodb.result mysql-test/suite/parts/r/partition_basic_myisam.result mysql-test/suite/parts/r/partition_basic_symlink_myisam.result mysql-test/suite/parts/r/partition_engine_innodb.result mysql-test/suite/parts/r/partition_engine_myisam.result mysql-test/suite/parts/r/partition_special_innodb.result mysql-test/suite/parts/t/disabled.def mysql-test/suite/parts/t/partition_special_innodb.test mysql-test/suite/rpl/combinations mysql-test/suite/rpl/r/rpl_failed_optimize.result mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result mysql-test/suite/rpl/t/disabled.def mysql-test/t/binlog_format_basic.test mysql-test/t/character_set_connection_func.test mysql-test/t/completion_type_func.test mysql-test/t/concurrent_insert_func.test mysql-test/t/csv.test mysql-test/t/delay_key_write_func.test mysql-test/t/disabled.def mysql-test/t/func_regexp.test mysql-test/t/general_log_file_basic.test mysql-test/t/general_log_file_func.test mysql-test/t/group_min_max.test mysql-test/t/innodb.test mysql-test/t/innodb_autoextend_increment_basic.test mysql-test/t/innodb_autoinc_lock_mode_func.test mysql-test/t/innodb_fast_shutdown_basic.test mysql-test/t/innodb_max_dirty_pages_pct_func.test mysql-test/t/innodb_table_locks_func.test mysql-test/t/insert_update.test mysql-test/t/join.test mysql-test/t/key_buffer_size_func.test mysql-test/t/log_basic.test mysql-test/t/log_bin_trust_function_creators_func.test mysql-test/t/log_queries_not_using_indexes_basic.test mysql-test/t/log_state.test mysql-test/t/log_tables.test mysql-test/t/lowercase_table3.test mysql-test/t/max_allowed_packet_func.test mysql-test/t/max_seeks_for_key_func.test mysql-test/t/max_sort_length_func.test mysql-test/t/myisam.test mysql-test/t/myisam_data_pointer_size_func.test mysql-test/t/myisam_stats_method_func.test mysql-test/t/partition.test mysql-test/t/partition_symlink.test mysql-test/t/profiling.test mysql-test/t/ps_ddl.test mysql-test/t/query_cache_limit_func.test mysql-test/t/query_cache_type_func.test mysql-test/t/query_prealloc_size_func.test mysql-test/t/show_check.test mysql-test/t/slow_query_log_file_basic.test mysql-test/t/slow_query_log_file_func.test mysql-test/t/sp.test mysql-test/t/subselect.test mysql-test/t/subselect3.test mysql-test/t/symlink.test mysql-test/t/type_bit.test mysql-test/t/type_newdecimal.test mysql-test/t/variables-notembedded.test mysql-test/t/variables.test mysys/mf_pack.c mysys/my_static.c mysys/my_static.h mysys/my_symlink.c mysys/safemalloc.c mysys/thr_lock.c netware/BUILD/compile-linux-tools netware/BUILD/nwbootstrap netware/Makefile.am netware/mysql_install_db.c sql/field.h sql/ha_partition.cc sql/ha_partition.h sql/handler.cc sql/handler.h sql/item.cc sql/item.h sql/item_cmpfunc.cc sql/log_event.cc sql/log_event.h sql/mysql_priv.h sql/mysqld.cc sql/opt_range.cc sql/opt_range.h sql/protocol.cc sql/rpl_tblmap.cc sql/rpl_tblmap.h sql/rpl_utility.h sql/sql_base.cc sql/sql_class.cc sql/sql_db.cc sql/sql_parse.cc sql/sql_partition.cc sql/sql_plugin.cc sql/sql_select.cc sql/sql_show.cc sql/sql_table.cc sql/sql_yacc.yy sql/thr_malloc.cc storage/csv/ha_tina.cc storage/federated/ha_federated.cc storage/innobase/buf/buf0buf.c storage/innobase/ha/ha0ha.c storage/innobase/handler/ha_innodb.cc storage/innobase/include/buf0buf.h storage/innobase/include/mach0data.h storage/innobase/include/mach0data.ic storage/innobase/include/srv0srv.h storage/innobase/lock/lock0lock.c storage/innobase/row/row0sel.c storage/innobase/srv/srv0srv.c storage/myisam/mi_check.c storage/myisam/mi_create.c storage/myisam/mi_open.c storage/myisam/mi_static.c storage/myisam/myisamchk.c storage/myisam/myisamdef.h storage/myisam/rt_index.c strings/decimal.c tests/mysql_client_test.c === modified file 'sql/log.cc' --- a/sql/log.cc 2008-08-22 10:40:21 +0000 +++ b/sql/log.cc 2008-09-28 07:34:25 +0000 @@ -2346,6 +2346,7 @@ const char *MYSQL_LOG::generate_name(con MYSQL_BIN_LOG::MYSQL_BIN_LOG() :bytes_written(0), prepared_xids(0), file_id(1), open_count(1), need_start_event(TRUE), m_table_map_version(0), + is_relay_log(0), description_event_for_exec(0), description_event_for_queue(0) { /* @@ -2543,7 +2544,7 @@ bool MYSQL_BIN_LOG::open(const char *log */ description_event_for_queue->created= 0; /* Don't set log_pos in event header */ - description_event_for_queue->artificial_event=1; + description_event_for_queue->set_artificial_event(); if (description_event_for_queue->write(&log_file)) goto err; @@ -3466,7 +3467,7 @@ void MYSQL_BIN_LOG::new_file_impl(bool n to change base names at some point. */ Rotate_log_event r(new_name+dirname_length(new_name), - 0, LOG_EVENT_OFFSET, 0); + 0, LOG_EVENT_OFFSET, is_relay_log ? Rotate_log_event::RELAY_LOG : 0); r.write(&log_file); bytes_written += r.data_written; } === modified file 'sql/log.h' --- a/sql/log.h 2007-10-30 08:03:34 +0000 +++ b/sql/log.h 2008-09-28 07:34:25 +0000 @@ -274,6 +274,10 @@ class MYSQL_BIN_LOG: public TC_LOG, priv public: MYSQL_LOG::generate_name; MYSQL_LOG::is_open; + + /* This is relay log */ + bool is_relay_log; + /* These describe the log's format. This is used only for relay logs. _for_exec is used by the SQL thread, _for_queue by the I/O thread. It's === modified file 'sql/log_event.cc' --- a/sql/log_event.cc 2008-09-06 00:51:17 +0000 +++ b/sql/log_event.cc 2008-09-29 05:36:42 +0000 @@ -810,9 +810,8 @@ bool Log_event::write_header(IO_CACHE* f if (is_artificial_event()) { /* - We should not do any cleanup on slave when reading this. We - mark this by setting log_pos to 0. Start_log_event_v3() will - detect this on reading and set artificial_event=1 for the event. + Artificial events are automatically generated and do not exist + in master's binary log, so log_pos should be set to 0. */ log_pos= 0; } @@ -3198,7 +3197,7 @@ Query_log_event::do_shall_skip(Relay_log #ifndef MYSQL_CLIENT Start_log_event_v3::Start_log_event_v3() :Log_event(), created(0), binlog_version(BINLOG_VERSION), - artificial_event(0), dont_set_created(0) + dont_set_created(0) { memcpy(server_version, ::server_version, ST_SERVER_VER_LEN); } @@ -3246,7 +3245,7 @@ void Start_log_event_v3::print(FILE* fil my_b_printf(&cache, "# Warning: this binlog was not closed properly. " "Most probably mysqld crashed writing it.\n"); } - if (!artificial_event && created) + if (!is_artificial_event() && created) { #ifdef WHEN_WE_HAVE_THE_RESET_CONNECTION_SQL_COMMAND /* @@ -3289,8 +3288,6 @@ Start_log_event_v3::Start_log_event_v3(c // prevent overrun if log is corrupted on disk server_version[ST_SERVER_VER_LEN-1]= 0; created= uint4korr(buf+ST_CREATED_OFFSET); - /* We use log_pos to mark if this was an artificial event or not */ - artificial_event= (log_pos == 0); dont_set_created= 1; } @@ -3691,7 +3688,7 @@ int Format_description_log_event::do_app original place when it comes to us; we'll know this by checking log_pos ("artificial" events have log_pos == 0). */ - if (!artificial_event && created && thd->transaction.all.ha_list) + if (!is_artificial_event() && created && thd->transaction.all.ha_list) { /* This is not an error (XA is safe), just an information */ rli->report(INFORMATION_LEVEL, 0, @@ -4628,6 +4625,8 @@ Rotate_log_event::Rotate_log_event(const #endif if (flags & DUP_NAME) new_log_ident= my_strndup(new_log_ident_arg, ident_len, MYF(MY_WME)); + if (flags & RELAY_LOG) + set_relay_log_event(); DBUG_VOID_RETURN; } #endif @@ -4699,8 +4698,6 @@ int Rotate_log_event::do_update_pos(Rela DBUG_PRINT("info", ("new_log_ident: %s", this->new_log_ident)); DBUG_PRINT("info", ("pos: %s", llstr(this->pos, buf))); - pthread_mutex_lock(&rli->data_lock); - rli->event_relay_log_pos= my_b_tell(rli->cur_log); /* If we are in a transaction or in a group: the only normal case is when the I/O thread was copying a big transaction, then it was @@ -4718,23 +4715,24 @@ int Rotate_log_event::do_update_pos(Rela relay log, which shall not change the group positions. */ if ((server_id != ::server_id || rli->replicate_same_server_id) && + !is_relay_log_event() && !rli->is_in_group()) { + pthread_mutex_lock(&rli->data_lock); DBUG_PRINT("info", ("old group_master_log_name: '%s' " "old group_master_log_pos: %lu", rli->group_master_log_name, (ulong) rli->group_master_log_pos)); memcpy(rli->group_master_log_name, new_log_ident, ident_len+1); rli->notify_group_master_log_name_update(); - rli->group_master_log_pos= pos; - strmake(rli->group_relay_log_name, rli->event_relay_log_name, - sizeof(rli->group_relay_log_name) - 1); - rli->notify_group_relay_log_name_update(); - rli->group_relay_log_pos= rli->event_relay_log_pos; + rli->inc_group_relay_log_pos(pos, TRUE /* skip_lock */); DBUG_PRINT("info", ("new group_master_log_name: '%s' " "new group_master_log_pos: %lu", rli->group_master_log_name, (ulong) rli->group_master_log_pos)); + pthread_mutex_unlock(&rli->data_lock); + flush_relay_log_info(rli); + /* Reset thd->options and sql_mode etc, because this could be the signal of a master's downgrade from 5.0 to 4.0. @@ -4748,9 +4746,9 @@ int Rotate_log_event::do_update_pos(Rela thd->variables.auto_increment_increment= thd->variables.auto_increment_offset= 1; } - pthread_mutex_unlock(&rli->data_lock); - pthread_cond_broadcast(&rli->data_cond); - flush_relay_log_info(rli); + else + rli->inc_event_relay_log_pos(); + DBUG_RETURN(0); } === modified file 'sql/log_event.h' --- a/sql/log_event.h 2008-09-06 00:51:17 +0000 +++ b/sql/log_event.h 2008-09-29 05:36:42 +0000 @@ -458,6 +458,25 @@ struct sql_ex_info #define LOG_EVENT_UPDATE_TABLE_MAP_VERSION_F 0x10 /** + @def LOG_EVENT_ARTIFICIAL_F + + Artificial events are created arbitarily and not written to binary + log + + These events should not update the master log position when slave + SQL thread executes them. +*/ +#define LOG_EVENT_ARTIFICIAL_F 0x20 + +/** + @def LOG_EVENT_RELAY_LOG_F + + Events with this flag set are created by slave IO thread and written + to relay log +*/ +#define LOG_EVENT_RELAY_LOG_F 0x40 + +/** @def OPTIONS_WRITTEN_TO_BIN_LOG OPTIONS_WRITTEN_TO_BIN_LOG are the bits of thd->options which must @@ -980,7 +999,10 @@ public: #endif virtual Log_event_type get_type_code() = 0; virtual bool is_valid() const = 0; - virtual bool is_artificial_event() { return 0; } + void set_artificial_event() { flags |= LOG_EVENT_ARTIFICIAL_F; } + void set_relay_log_event() { flags |= LOG_EVENT_RELAY_LOG_F; } + bool is_artificial_event() const { return flags & LOG_EVENT_ARTIFICIAL_F; } + bool is_relay_log_event() const { return flags & LOG_EVENT_RELAY_LOG_F; } inline bool get_cache_stmt() const { return cache_stmt; } Log_event(const char* buf, const Format_description_log_event *description_event); @@ -2079,12 +2101,6 @@ public: uint16 binlog_version; char server_version[ST_SERVER_VER_LEN]; /* - artifical_event is 1 in the case where this is a generated event that - should not case any cleanup actions. We handle this in the log by - setting log_event == 0 (for now). - */ - bool artificial_event; - /* We set this to 1 if we don't want to have the created time in the log, which is the case when we rollover to a new log. */ @@ -2112,7 +2128,6 @@ public: { return START_V3_HEADER_LEN; //no variable-sized part } - virtual bool is_artificial_event() { return artificial_event; } protected: #if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) @@ -2532,7 +2547,8 @@ class Rotate_log_event: public Log_event { public: enum { - DUP_NAME= 2 // if constructor should dup the string argument + DUP_NAME= 2, // if constructor should dup the string argument + RELAY_LOG=4 // rotate event for relay log }; const char* new_log_ident; ulonglong pos; === modified file 'sql/rpl_rli.cc' --- a/sql/rpl_rli.cc 2008-03-26 09:27:00 +0000 +++ b/sql/rpl_rli.cc 2008-09-28 07:34:25 +0000 @@ -155,6 +155,7 @@ int init_relay_log_info(Relay_log_info* sql_print_error("Failed in open_log() called from init_relay_log_info()"); DBUG_RETURN(1); } + rli->relay_log.is_relay_log= TRUE; } /* if file does not exist */ === modified file 'sql/sql_repl.cc' --- a/sql/sql_repl.cc 2008-08-21 11:47:23 +0000 +++ b/sql/sql_repl.cc 2008-09-29 05:36:42 +0000 @@ -63,7 +63,7 @@ static int fake_rotate_event(NET* net, S ulong event_len = ident_len + LOG_EVENT_HEADER_LEN + ROTATE_HEADER_LEN; int4store(header + SERVER_ID_OFFSET, server_id); int4store(header + EVENT_LEN_OFFSET, event_len); - int2store(header + FLAGS_OFFSET, 0); + int2store(header + FLAGS_OFFSET, LOG_EVENT_ARTIFICIAL_F); // TODO: check what problems this may cause and fix them int4store(header + LOG_POS_OFFSET, 0);
Thread | ||
---|---|---|
• bzr push into mysql-5.1 branch (hezx:2667) Bug#20129 Bug#21579 Bug#27526Bug#30129 Bug#30394 Bug#31455 Bug#32052 Bug#32167 Bug#33300 Bug#33337Bug#34604... | He Zhenxing | 30 Sep |