Loading mysql-test/r/rpl_incident.result +1 −1 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno 1583 Last_Errno 1586 Last_Error The incident LOST_EVENTS occured on the master. Message: <none> Skip_Counter 0 Exec_Master_Log_Pos # Loading sql/log_event.cc +2 −2 Original line number Diff line number Diff line Loading @@ -7956,9 +7956,9 @@ Incident_log_event::print(FILE *file, #if defined(HAVE_REPLICATION) && !defined(MYSQL_CLIENT) int Incident_log_event::exec_event(st_relay_log_info *rli) Incident_log_event::do_apply_event(RELAY_LOG_INFO const *rli) { DBUG_ENTER("Incident_log_event::exec_event"); DBUG_ENTER("Incident_log_event::do_apply_event"); slave_print_msg(ERROR_LEVEL, rli, ER_SLAVE_INCIDENT, ER(ER_SLAVE_INCIDENT), description(), Loading sql/log_event.h +1 −1 Original line number Diff line number Diff line Loading @@ -2588,7 +2588,7 @@ class Incident_log_event : public Log_event { #endif #if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) virtual int exec_event(struct st_relay_log_info *rli); virtual int do_apply_event(RELAY_LOG_INFO const *rli); #endif virtual bool write_data_header(IO_CACHE *file); Loading sql/rpl_rli.cc +3 −3 Original line number Diff line number Diff line Loading @@ -969,7 +969,7 @@ int purge_relay_logs(RELAY_LOG_INFO* rli, THD *thd, bool just_reset, strtol() conversions needed for log names comparison. We don't need to compare them each time this function is called, we only need to do this when current log name changes. If we have UNTIL_MASTER_POS condition we need to do this only after Rotate_log_event::exec_event() (which is need to do this only after Rotate_log_event::do_apply_event() (which is rare, so caching gives real benifit), and if we have UNTIL_RELAY_POS condition then we should invalidate cached comarison value after inc_group_relay_log_pos() which called for each group of events (so we Loading Loading @@ -1093,12 +1093,12 @@ void st_relay_log_info::cleanup_context(THD *thd, bool error) DBUG_ASSERT(sql_thd == thd); /* 1) Instances of Table_map_log_event, if ::exec_event() was called on them, 1) Instances of Table_map_log_event, if ::do_apply_event() was called on them, may have opened tables, which we cannot be sure have been closed (because maybe the Rows_log_event have not been found or will not be, because slave SQL thread is stopping, or relay log has a missing tail etc). So we close all thread's tables. And so the table mappings have to be cancelled. 2) Rows_log_event::exec_event() may even have started statements or 2) Rows_log_event::do_apply_event() may even have started statements or transactions on them, which we need to rollback in case of error. 3) If finding a Format_description_log_event after a BEGIN, we also need to rollback before continuing with the next events. Loading sql/sql_class.h +1 −1 Original line number Diff line number Diff line Loading @@ -1270,7 +1270,7 @@ class THD :public Statement, return first_successful_insert_id_in_prev_stmt; } /* Used by Intvar_log_event::exec_event() and by "SET INSERT_ID=#" Used by Intvar_log_event::do_apply_event() and by "SET INSERT_ID=#" (mysqlbinlog). We'll soon add a variant which can take many intervals in argument. */ Loading Loading
mysql-test/r/rpl_incident.result +1 −1 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno 1583 Last_Errno 1586 Last_Error The incident LOST_EVENTS occured on the master. Message: <none> Skip_Counter 0 Exec_Master_Log_Pos # Loading
sql/log_event.cc +2 −2 Original line number Diff line number Diff line Loading @@ -7956,9 +7956,9 @@ Incident_log_event::print(FILE *file, #if defined(HAVE_REPLICATION) && !defined(MYSQL_CLIENT) int Incident_log_event::exec_event(st_relay_log_info *rli) Incident_log_event::do_apply_event(RELAY_LOG_INFO const *rli) { DBUG_ENTER("Incident_log_event::exec_event"); DBUG_ENTER("Incident_log_event::do_apply_event"); slave_print_msg(ERROR_LEVEL, rli, ER_SLAVE_INCIDENT, ER(ER_SLAVE_INCIDENT), description(), Loading
sql/log_event.h +1 −1 Original line number Diff line number Diff line Loading @@ -2588,7 +2588,7 @@ class Incident_log_event : public Log_event { #endif #if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) virtual int exec_event(struct st_relay_log_info *rli); virtual int do_apply_event(RELAY_LOG_INFO const *rli); #endif virtual bool write_data_header(IO_CACHE *file); Loading
sql/rpl_rli.cc +3 −3 Original line number Diff line number Diff line Loading @@ -969,7 +969,7 @@ int purge_relay_logs(RELAY_LOG_INFO* rli, THD *thd, bool just_reset, strtol() conversions needed for log names comparison. We don't need to compare them each time this function is called, we only need to do this when current log name changes. If we have UNTIL_MASTER_POS condition we need to do this only after Rotate_log_event::exec_event() (which is need to do this only after Rotate_log_event::do_apply_event() (which is rare, so caching gives real benifit), and if we have UNTIL_RELAY_POS condition then we should invalidate cached comarison value after inc_group_relay_log_pos() which called for each group of events (so we Loading Loading @@ -1093,12 +1093,12 @@ void st_relay_log_info::cleanup_context(THD *thd, bool error) DBUG_ASSERT(sql_thd == thd); /* 1) Instances of Table_map_log_event, if ::exec_event() was called on them, 1) Instances of Table_map_log_event, if ::do_apply_event() was called on them, may have opened tables, which we cannot be sure have been closed (because maybe the Rows_log_event have not been found or will not be, because slave SQL thread is stopping, or relay log has a missing tail etc). So we close all thread's tables. And so the table mappings have to be cancelled. 2) Rows_log_event::exec_event() may even have started statements or 2) Rows_log_event::do_apply_event() may even have started statements or transactions on them, which we need to rollback in case of error. 3) If finding a Format_description_log_event after a BEGIN, we also need to rollback before continuing with the next events. Loading
sql/sql_class.h +1 −1 Original line number Diff line number Diff line Loading @@ -1270,7 +1270,7 @@ class THD :public Statement, return first_successful_insert_id_in_prev_stmt; } /* Used by Intvar_log_event::exec_event() and by "SET INSERT_ID=#" Used by Intvar_log_event::do_apply_event() and by "SET INSERT_ID=#" (mysqlbinlog). We'll soon add a variant which can take many intervals in argument. */ Loading