diff options
author | unknown <mats@romeo.(none)> | 2007-01-17 15:06:37 +0100 |
---|---|---|
committer | unknown <mats@romeo.(none)> | 2007-01-17 15:06:37 +0100 |
commit | 4b00b3f0cecbaaa8b89b3a2e0af95e5fb1da80f4 (patch) | |
tree | 9eae6a73e0dce9a2735898f9cba02326b8eab6a9 /sql/rpl_rli.cc | |
parent | baaa102de52611e2eef0822bd129bf2ef343e4f1 (diff) | |
download | mariadb-git-4b00b3f0cecbaaa8b89b3a2e0af95e5fb1da80f4.tar.gz |
BUG#23171 (Illegal slave restart position):
Third patch of the bug fix where the code for skipping events and for
executing events is factored out into three functions:
- shall_skip() to decide if the event shall be skipped and the
reason for it;
- do_apply_event(), where the event is applied to the database; and
- do_update_pos(), which updates the actual relay log position and
group positions.
mysql-test/r/rpl_row_tabledefs_2myisam.result:
Result change.
mysql-test/r/rpl_row_tabledefs_3innodb.result:
Result change.
sql/log_event.cc:
Creating shall_skip(), do_update_pos(), and do_apply_event()
functions for each event by factoring out the previous code.
Adding debug code and fixing some error codes that were not correct.
sql/rpl_rli.cc:
Renaming unsafe_to_stop_at into last_event_start_time.
Adding debug code.
sql/rpl_rli.h:
Renaming unsafe_to_stop_at into last_event_start_time.
sql/slave.cc:
Renaming unsafe_to_stop_at into last_event_start_time.
Diffstat (limited to 'sql/rpl_rli.cc')
-rw-r--r-- | sql/rpl_rli.cc | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc index 75e4bd168ee..36334351da2 100644 --- a/sql/rpl_rli.cc +++ b/sql/rpl_rli.cc @@ -36,7 +36,7 @@ st_relay_log_info::st_relay_log_info() inited(0), abort_slave(0), slave_running(0), until_condition(UNTIL_NONE), until_log_pos(0), retried_trans(0), tables_to_lock(0), tables_to_lock_count(0), - unsafe_to_stop_at(0) + last_event_start_time(0) { DBUG_ENTER("st_relay_log_info::st_relay_log_info"); @@ -1001,6 +1001,22 @@ bool st_relay_log_info::is_until_satisfied() log_pos= group_relay_log_pos; } +#ifndef DBUG_OFF + { + char buf[32]; + DBUG_PRINT("info", ("group_master_log_name='%s', group_master_log_pos=%s", + group_master_log_name, llstr(group_master_log_pos, buf))); + DBUG_PRINT("info", ("group_relay_log_name='%s', group_relay_log_pos=%s", + group_relay_log_name, llstr(group_relay_log_pos, buf))); + DBUG_PRINT("info", ("(%s) log_name='%s', log_pos=%s", + until_condition == UNTIL_MASTER_POS ? "master" : "relay", + log_name, llstr(log_pos, buf))); + DBUG_PRINT("info", ("(%s) until_log_name='%s', until_log_pos=%s", + until_condition == UNTIL_MASTER_POS ? "master" : "relay", + until_log_name, llstr(until_log_pos, buf))); + } +#endif + if (until_log_names_cmp_result == UNTIL_LOG_NAMES_CMP_UNKNOWN) { /* @@ -1095,7 +1111,7 @@ void st_relay_log_info::cleanup_context(THD *thd, bool error) m_table_map.clear_tables(); close_thread_tables(thd); clear_tables_to_lock(); - unsafe_to_stop_at= 0; + last_event_start_time= 0; DBUG_VOID_RETURN; } #endif |