diff options
author | unknown <knielsen@knielsen-hq.org> | 2013-08-22 12:36:42 +0200 |
---|---|---|
committer | unknown <knielsen@knielsen-hq.org> | 2013-08-22 12:36:42 +0200 |
commit | f74c745a994cbbf3b8289674bf49629224457d4e (patch) | |
tree | d1cd1df1a0bf6004428683af6dd83cc7b5b55937 /sql/log_event.h | |
parent | 33c66eb7fbcddb09217820708e8ce9324e65db11 (diff) | |
download | mariadb-git-f74c745a994cbbf3b8289674bf49629224457d4e.tar.gz |
MDEV-4488: When master is on the list of ignore_server_ids, GTID position on slave is not updated
The ignored events are not written to the relay log, but instead a fake
Rotate event is generated to handle update of position.
Extend this for Gtid so we similarly generate a fake Gtid_list event
to update the GTID position.
Also fix an unrelated test issue that got triggered by the added test cases.
Diffstat (limited to 'sql/log_event.h')
-rw-r--r-- | sql/log_event.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/log_event.h b/sql/log_event.h index b73c0e71f77..abb3b96bac4 100644 --- a/sql/log_event.h +++ b/sql/log_event.h @@ -3197,12 +3197,15 @@ public: uint32 count; uint32 gl_flags; struct rpl_gtid *list; + uint64 *sub_id_list; static const uint element_size= 4+4+8; static const uint32 FLAG_UNTIL_REACHED= (1<<28); + static const uint32 FLAG_IGN_GTIDS= (1<<29); #ifdef MYSQL_SERVER Gtid_list_log_event(rpl_binlog_state *gtid_set, uint32 gl_flags); + Gtid_list_log_event(slave_connection_state *gtid_set, uint32 gl_flags); #ifdef HAVE_REPLICATION void pack_info(THD *thd, Protocol *protocol); #endif @@ -3211,7 +3214,7 @@ public: #endif Gtid_list_log_event(const char *buf, uint event_len, const Format_description_log_event *description_event); - ~Gtid_list_log_event() { my_free(list); } + ~Gtid_list_log_event() { my_free(list); my_free(sub_id_list); } Log_event_type get_type_code() { return GTID_LIST_EVENT; } int get_data_size() { /* |