summaryrefslogtreecommitdiff
path: root/sql/rpl_rli.cc
diff options
context:
space:
mode:
authorAlexey Kopytov <Alexey.Kopytov@Sun.com>2009-12-16 16:47:07 +0300
committerAlexey Kopytov <Alexey.Kopytov@Sun.com>2009-12-16 16:47:07 +0300
commitf1e83a4163458f7e25c709403cc7c7b48a7ef23e (patch)
treefa68ffcd1dbdaf248e483a5692358fe7330ec507 /sql/rpl_rli.cc
parentbcedf962ff7d22dd4d921a099fa38feeacc01b0b (diff)
parent8b19de0de10094b25be63cd6a9a1d61517602f0b (diff)
downloadmariadb-git-f1e83a4163458f7e25c709403cc7c7b48a7ef23e.tar.gz
Manual merge of mysql-5.1-bugteam into mysql-trunk-merge.
Diffstat (limited to 'sql/rpl_rli.cc')
-rw-r--r--sql/rpl_rli.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc
index 269ae0e6d68..4bbafa0253a 100644
--- a/sql/rpl_rli.cc
+++ b/sql/rpl_rli.cc
@@ -1029,7 +1029,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;
@@ -1039,8 +1039,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)
+ DBUG_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 */