summaryrefslogtreecommitdiff
path: root/sql/slave.h
diff options
context:
space:
mode:
authorunknown <guilhem@mysql.com>2004-03-01 15:15:58 +0100
committerunknown <guilhem@mysql.com>2004-03-01 15:15:58 +0100
commit12ede13a9717e964cfae8c15ac2dce8a3480b590 (patch)
tree08b3a130d4ec9656ddc3810bedfddc4b3a7b9357 /sql/slave.h
parentbf53c870499fac500ef34f0880a4da18c08e417d (diff)
downloadmariadb-git-12ede13a9717e964cfae8c15ac2dce8a3480b590.tar.gz
Fix for BUG#3015
"(binlog, position) stored by InnoDB for a replication slave can be wrong". This code contains conditional #if to distinguish between versions; it should be merged into 4.1 and 5.0. sql/ha_innodb.cc: correcting the binlog position stored in InnoDB in a slave. sql/log_event.cc: better code to store the binlog position in InnoDB for a slave. sql/slave.h: Better code for storing the binlog position in InnoDB for a slave.
Diffstat (limited to 'sql/slave.h')
-rw-r--r--sql/slave.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/sql/slave.h b/sql/slave.h
index ed34c12985a..8331e722a51 100644
--- a/sql/slave.h
+++ b/sql/slave.h
@@ -177,12 +177,16 @@ typedef struct st_relay_log_info
bool ignore_log_space_limit;
/*
- InnoDB internally stores the master log position it has processed
- so far; the position to store is really the sum of
- pos + pending + event_len here since we must store the pos of the
- END of the current log event
+ When it commits, InnoDB internally stores the master log position it has
+ processed so far; the position to store is the one of the end of the
+ committing event (the COMMIT query event, or the event if in autocommit
+ mode).
*/
- int event_len;
+#if MYSQL_VERSION_ID < 40100
+ ulonglong future_master_log_pos;
+#else
+ ulonglong future_group_master_log_pos;
+#endif
/*
Needed for problems when slave stops and we want to restart it