summaryrefslogtreecommitdiff
path: root/sql/log.cc
diff options
context:
space:
mode:
authorunknown <sasha@mysql.sashanet.com>2001-06-14 14:12:40 -0600
committerunknown <sasha@mysql.sashanet.com>2001-06-14 14:12:40 -0600
commit4ae515902c51450a5bd068a18ba6416653a9c8f9 (patch)
tree8fd6d373cb583effe8991a97cd4aa7a8b88c72f1 /sql/log.cc
parent468fb87ff933007b80503f6a5257cbc287d5f949 (diff)
downloadmariadb-git-4ae515902c51450a5bd068a18ba6416653a9c8f9.tar.gz
Added slave log event to record the master position in of slave thread
in slave binlog - needed for synchronization slave during recovery sql/log.cc: slave log event sql/log_event.cc: slave log event sql/log_event.h: slave log event sql/slave.cc: slave log event sql/sql_class.h: slave log event
Diffstat (limited to 'sql/log.cc')
-rw-r--r--sql/log.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/sql/log.cc b/sql/log.cc
index 4cd93261973..1cb6c945b7c 100644
--- a/sql/log.cc
+++ b/sql/log.cc
@@ -532,6 +532,15 @@ void MYSQL_LOG::new_file()
*/
Rotate_log_event r(new_name+dirname_length(new_name));
r.write(&log_file);
+
+ // if we have a master, record current master info in a slave
+ // event
+ if(glob_mi.inited)
+ {
+ Slave_log_event s(current_thd, &glob_mi);
+ if(s.master_host)
+ s.write(&log_file);
+ }
VOID(pthread_cond_broadcast(&COND_binlog_update));
}
name=0;
@@ -626,6 +635,18 @@ bool MYSQL_LOG::write(THD *thd,enum enum_server_command command,
/* Write to binary log in a format to be used for replication */
+bool MYSQL_LOG::write(Slave_log_event* event_info)
+{
+ bool error;
+ if (!inited) // Can't use mutex if not init
+ return 0;
+ VOID(pthread_mutex_lock(&LOCK_log));
+ error = event_info->write(&log_file);
+ VOID(pthread_mutex_unlock(&LOCK_log));
+ return error;
+}
+
+
bool MYSQL_LOG::write(Query_log_event* event_info)
{
/* In most cases this is only called if 'is_open()' is true */