1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00

BUG#43263 BEGIN skipped in some replicate-do-db cases

BEGIN/COMMIT/ROLLBACK was subject to replication db rules, and
caused the boundary of a transaction not recognized correctly 
when these queries were ignored by the rules.

Fixed the problem by skipping replication db rules for these
statements.
This commit is contained in:
He Zhenxing
2009-05-31 11:26:58 +08:00
parent 14eb98dd8a
commit c0fde0eda7
7 changed files with 269 additions and 32 deletions

View File

@@ -1953,7 +1953,10 @@ int Query_log_event::exec_event(struct st_relay_log_info* rli,
::exec_event(), then the companion SET also have so we
don't need to reset_one_shot_variables().
*/
if (db_ok(thd->db, replicate_do_db, replicate_ignore_db))
if (!strncmp(query_arg, "BEGIN", q_len_arg) ||
!strncmp(query_arg, "COMMIT", q_len_arg) ||
!strncmp(query_arg, "ROLLBACK", q_len_arg) ||
db_ok(thd->db, replicate_do_db, replicate_ignore_db))
{
thd->set_time((time_t)when);
thd->query_length= q_len_arg;