From c4d69f17753f375e8cfd18c33de291cdf13504f9 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 11 Aug 2011 11:38:52 +0200 Subject: MWL#234: Support for marking binlog events to not be replicated, and for telling slaves not to replicate events with such mark --- sql/sql_binlog.cc | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'sql/sql_binlog.cc') diff --git a/sql/sql_binlog.cc b/sql/sql_binlog.cc index 9713ec1ef5c..bb95054a371 100644 --- a/sql/sql_binlog.cc +++ b/sql/sql_binlog.cc @@ -33,6 +33,7 @@ void mysql_client_binlog_statement(THD* thd) { + ulonglong save_do_not_replicate; DBUG_ENTER("mysql_client_binlog_statement"); DBUG_PRINT("info",("binlog base64: '%*s'", (int) (thd->lex->comment.length < 2048 ? @@ -213,7 +214,15 @@ void mysql_client_binlog_statement(THD* thd) reporting. */ #if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) + save_do_not_replicate= thd->options & OPTION_DO_NOT_REPLICATE; + thd->options= (thd->options & ~OPTION_DO_NOT_REPLICATE) | + (ev->flags & LOG_EVENT_DO_NOT_REPLICATE_F ? + OPTION_DO_NOT_REPLICATE : 0); + err= ev->apply_event(rli); + + thd->options= (thd->options & ~OPTION_DO_NOT_REPLICATE) | + save_do_not_replicate; #else err= 0; #endif -- cgit v1.2.1