diff options
author | unknown <knielsen@knielsen-hq.org> | 2013-10-23 15:03:03 +0200 |
---|---|---|
committer | unknown <knielsen@knielsen-hq.org> | 2013-10-23 15:03:03 +0200 |
commit | a09d2b105f8e56e8fec98975ea9fa091c263327a (patch) | |
tree | 0982c9f747563ca972b85313f62a175141f0a0f6 /sql/sys_vars.cc | |
parent | 7681c6aa787f9d3402059957bd8d993997cb623b (diff) | |
download | mariadb-git-a09d2b105f8e56e8fec98975ea9fa091c263327a.tar.gz |
MDEV-4506: Parallel replication.
Fix some more parts of old-style position updates.
Now we save in rgi some coordinates for master log and relay log, so
that in do_update_pos() we can use the right set of coordinates with
the right events.
The Rotate_log_event::do_update_pos() is fixed in the parallel case
to not directly update relay-log.info (as Rotate event runs directly
in the driver SQL thread, ahead of actual event execution). Instead,
group_master_log_file is updated as part of do_update_pos() in each
event execution.
In the parallel case, position updates happen in parallel without
any ordering, but taking care that position is not updated backwards.
Since position update happens only after event execution this leads
to the right result.
Also fix an access-after-free introduced in an earlier commit.
Diffstat (limited to 'sql/sys_vars.cc')
-rw-r--r-- | sql/sys_vars.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 91f13bebd12..d509a614b6e 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -4228,6 +4228,8 @@ static bool check_pseudo_slave_mode(sys_var *self, THD *thd, set_var *var) #ifndef EMBEDDED_LIBRARY delete thd->rli_fake; thd->rli_fake= NULL; + delete thd->rgi_fake; + thd->rgi_fake= NULL; #endif } else if (previous_val && val) |