diff options
Diffstat (limited to 'sql/rpl_rli.h')
-rw-r--r-- | sql/rpl_rli.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/sql/rpl_rli.h b/sql/rpl_rli.h index cc807852bf2..d3ccbfd4a27 100644 --- a/sql/rpl_rli.h +++ b/sql/rpl_rli.h @@ -641,6 +641,33 @@ struct inuse_relaylog { } }; +enum start_alter_state +{ + INVALID= 0, + REGISTERED, // Start Alter exist, Default state + COMMIT_ALTER, // COMMIT the alter + ROLLBACK_ALTER, // Rollback the alter + COMPLETED // COMMIT/ROLLBACK Alter written in binlog +}; + +struct start_alter_info +{ + /* + Unique among replication channel at one point of time + */ + uint64 sa_seq_no; //key for searching + uint32 domain_id; + /* + 0 prepared and not error from commit and rollback + >0 error expected in commit/rollback + Rollback can be logged with 0 error if master is killed + */ + uint error; + const char *err_msg; + enum start_alter_state state; + /* We are not using mysql_cond_t because we do not need PSI */ + mysql_cond_t start_alter_cond; +}; /* This is data for various state needed to be kept for the processing of @@ -760,6 +787,9 @@ struct rpl_group_info bool did_mark_start_commit; /* Copy of flags2 from GTID event. */ uchar gtid_ev_flags2; + /* Copy of flags3 from GTID event. */ + uint16 gtid_ev_flags_extra; + uint64 gtid_ev_sa_seq_no; enum { GTID_DUPLICATE_NULL=0, GTID_DUPLICATE_IGNORE=1, @@ -834,6 +864,15 @@ struct rpl_group_info RETRY_KILL_KILLED }; uchar killed_for_retry; + bool reserved_start_alter_thread; + bool finish_event_group_called; + /* + Used for two phase alter table + */ + rpl_parallel_thread *rpt; + Query_log_event *start_alter_ev; + bool direct_commit_alter; + start_alter_info *sa_info; rpl_group_info(Relay_log_info *rli_); ~rpl_group_info(); @@ -961,6 +1000,19 @@ struct rpl_group_info if (!is_parallel_exec) rli->event_relay_log_pos= future_event_relay_log_pos; } + + void finish_start_alter_event_group(); + + bool get_finish_event_group_called() + { + return finish_event_group_called; + } + + void set_finish_event_group_called(bool value) + { + finish_event_group_called= value; + } + }; |