diff options
author | Andrei Elkin <aelkin@mysql.com> | 2009-12-14 18:32:22 +0200 |
---|---|---|
committer | Andrei Elkin <aelkin@mysql.com> | 2009-12-14 18:32:22 +0200 |
commit | ad3d84e91220574794bc949662351c6ceab5498c (patch) | |
tree | 79f322d8853542fd99d6d35fcc14266afad722f2 /sql/rpl_rli.cc | |
parent | 594f28a5e053f33d98d63844bf4f3da732235ebe (diff) | |
parent | 79c147f191586ef4d2113ffd0fd37206ca1daa20 (diff) | |
download | mariadb-git-ad3d84e91220574794bc949662351c6ceab5498c.tar.gz |
merging 5.0-bt -> 5.1-bt to local branch with bug@47210
Diffstat (limited to 'sql/rpl_rli.cc')
-rw-r--r-- | sql/rpl_rli.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc index 66de9357a53..f45ab56aa1c 100644 --- a/sql/rpl_rli.cc +++ b/sql/rpl_rli.cc @@ -1022,7 +1022,7 @@ err: false - condition not met */ -bool Relay_log_info::is_until_satisfied(my_off_t master_beg_pos) +bool Relay_log_info::is_until_satisfied(THD *thd, Log_event *ev) { const char *log_name; ulonglong log_pos; @@ -1032,8 +1032,12 @@ bool Relay_log_info::is_until_satisfied(my_off_t master_beg_pos) if (until_condition == UNTIL_MASTER_POS) { + if (ev && ev->server_id == (uint32) ::server_id && !replicate_same_server_id) + return FALSE; log_name= group_master_log_name; - log_pos= master_beg_pos; + log_pos= (!ev)? group_master_log_pos : + ((thd->options & OPTION_BEGIN || !ev->log_pos) ? + group_master_log_pos : ev->log_pos - ev->data_written); } else { /* until_condition == UNTIL_RELAY_POS */ |