summaryrefslogtreecommitdiff
path: root/sql/rpl_rli.h
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2012-06-14 20:05:31 +0200
committerSergei Golubchik <sergii@pisem.net>2012-06-14 20:05:31 +0200
commit0522307ed1b4aeef16dd94606d0b0f6e974b29a5 (patch)
treeac9829d5d4b0e676c984b931702282c446e604ea /sql/rpl_rli.h
parentd2ca6d2e7ff028f6abbab52e36530046b3f84a49 (diff)
parent326b40c9c8160db414288925936449e55f4f3a0a (diff)
downloadmariadb-git-0522307ed1b4aeef16dd94606d0b0f6e974b29a5.tar.gz
mysql-5.5 merge
Diffstat (limited to 'sql/rpl_rli.h')
-rw-r--r--sql/rpl_rli.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/sql/rpl_rli.h b/sql/rpl_rli.h
index 958002561bc..b989283deb4 100644
--- a/sql/rpl_rli.h
+++ b/sql/rpl_rli.h
@@ -389,6 +389,41 @@ public:
*/
time_t last_event_start_time;
+ /*
+ A container to hold on Intvar-, Rand-, Uservar- log-events in case
+ the slave is configured with table filtering rules.
+ The withhold events are executed when their parent Query destiny is
+ determined for execution as well.
+ */
+ Deferred_log_events *deferred_events;
+
+ /*
+ State of the container: true stands for IRU events gathering,
+ false does for execution, either deferred or direct.
+ */
+ bool deferred_events_collecting;
+
+ /*
+ Returns true if the argument event resides in the containter;
+ more specifically, the checking is done against the last added event.
+ */
+ bool is_deferred_event(Log_event * ev)
+ {
+ return deferred_events_collecting ? deferred_events->is_last(ev) : false;
+ };
+ /* The general cleanup that slave applier may need at the end of query. */
+ inline void cleanup_after_query()
+ {
+ if (deferred_events)
+ deferred_events->rewind();
+ };
+ /* The general cleanup that slave applier may need at the end of session. */
+ void cleanup_after_session()
+ {
+ if (deferred_events)
+ delete deferred_events;
+ };
+
/**
Helper function to do after statement completion.