summaryrefslogtreecommitdiff
path: root/sql/log.h
diff options
context:
space:
mode:
authorcbell/Chuck@mysql_cab_desk. <>2007-02-26 14:06:10 -0500
committercbell/Chuck@mysql_cab_desk. <>2007-02-26 14:06:10 -0500
commitd7e4de9937c401a079c1cb310d2a1f7b80db5a01 (patch)
treec33e6e251593ed3bedfe71baaf8f187058829aed /sql/log.h
parent54b04ff5c80f3e56d900fc68750ef7b78b11d61d (diff)
downloadmariadb-git-d7e4de9937c401a079c1cb310d2a1f7b80db5a01.tar.gz
BUG#20141 "User-defined variables are not replicated properly for
SF/Triggers in SBR mode." BUG#14914 "SP: Uses of session variables in routines are not always replicated" BUG#25167 "Dupl. usage of user-variables in trigger/function is not replicated correctly" User-defined variables used inside of stored functions/triggers in statements which did not update tables directly were not replicated. We also had problems with replication of user-defined variables which were used in triggers (or stored functions called from table-updating statements) more than once. This patch addresses the first issue by enabling logging of all references to user-defined variables in triggers/stored functions and not only references from table-updating statements. The second issue stemmed from the fact that for user-defined variables used from triggers or stored functions called from table-updating statements we were writing binlog events for each reference instead of only one event for the first reference. This problem is already solved for stored functions called from non-updating statements with help of "event unioning" mechanism. So the patch simply extends this mechanism to the case affected. It also fixes small problem in this mechanism which caused wrong logging of references to user-variables in cases when non-updating statement called several stored functions which used the same variable and some of these function calls were omitted from binlog as they were not updating any tables.
Diffstat (limited to 'sql/log.h')
-rw-r--r--sql/log.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/log.h b/sql/log.h
index 61db7052f75..b7891f94882 100644
--- a/sql/log.h
+++ b/sql/log.h
@@ -341,7 +341,7 @@ public:
int write_cache(IO_CACHE *cache, bool lock_log, bool flush_and_sync);
- void start_union_events(THD *thd);
+ void start_union_events(THD *thd, query_id_t query_id_param);
void stop_union_events(THD *thd);
bool is_query_in_union(THD *thd, query_id_t query_id_param);