summaryrefslogtreecommitdiff
path: root/sql/rpl_mi.h
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2018-01-13 18:25:24 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2018-01-13 18:25:24 +0200
commit70fff3688d967270f8e45f134554cb101e105ffc (patch)
tree169842d23334c6b779ac31a0ed1651c077b0187d /sql/rpl_mi.h
parent3e6fcb6ac8e39593d441f3b60fbc21a88330f2c7 (diff)
parentbec27127753e9ee8cf58132b531dba1af534d91a (diff)
downloadmariadb-git-70fff3688d967270f8e45f134554cb101e105ffc.tar.gz
Merge bb-10.2-ext into 10.3
Diffstat (limited to 'sql/rpl_mi.h')
-rw-r--r--sql/rpl_mi.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/sql/rpl_mi.h b/sql/rpl_mi.h
index 14d74dc4bb7..16524737458 100644
--- a/sql/rpl_mi.h
+++ b/sql/rpl_mi.h
@@ -133,6 +133,19 @@ public:
extern TYPELIB slave_parallel_mode_typelib;
+typedef struct st_rows_event_tracker
+{
+ char binlog_file_name[FN_REFLEN];
+ my_off_t first_seen;
+ my_off_t last_seen;
+ bool stmt_end_seen;
+ void update(const char* file_name, size_t pos,
+ const char* buf,
+ const Format_description_log_event *fdle);
+ void reset();
+ bool check_and_report(const char* file_name, size_t pos);
+} Rows_event_tracker;
+
/*****************************************************************************
Replication IO Thread
@@ -301,6 +314,14 @@ class Master_info : public Slave_reporting_capability
uint64 gtid_reconnect_event_skip_count;
/* gtid_event_seen is false until we receive first GTID event from master. */
bool gtid_event_seen;
+ /**
+ The struct holds some history of Rows- log-event reading/queuing
+ by the receiver thread. Its fields are updated per each such event
+ at time of queue_event(), and they are checked to detect
+ the Rows- event group integrity violation at time of first non-Rows-
+ event gets handled.
+ */
+ Rows_event_tracker rows_event_tracker;
bool in_start_all_slaves, in_stop_all_slaves;
bool in_flush_all_relay_logs;
uint users; /* Active user for object */