diff options
author | guilhem@mysql.com <> | 2004-09-23 12:16:56 +0200 |
---|---|---|
committer | guilhem@mysql.com <> | 2004-09-23 12:16:56 +0200 |
commit | 00d2e803dc9203a23c2bf5280bee68ffce6de360 (patch) | |
tree | 2f0092ce28cd67173fe36192649ff6bd1c319820 /sql/log_event.cc | |
parent | 36548b10ca2d796c46436ab445569f6e0476ecaf (diff) | |
download | mariadb-git-00d2e803dc9203a23c2bf5280bee68ffce6de360.tar.gz |
Fix for BUG#5705: "SET CHARATER_SET_SERVERetc will be lost if STOP SLAVE before following query":
we do not increment rli->group_master_log_pos if we are just after a SET ONE_SHOT (it's not a standalone event)
Diffstat (limited to 'sql/log_event.cc')
-rw-r--r-- | sql/log_event.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc index 1f30e932c01..326f2fc5c59 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -1091,7 +1091,15 @@ end: VOID(pthread_mutex_unlock(&LOCK_thread_count)); close_thread_tables(thd); free_root(&thd->mem_root,MYF(MY_KEEP_PREALLOC)); - return (thd->query_error ? thd->query_error : Log_event::exec_event(rli)); + /* + If there was an error we stop. Otherwise we increment positions. Note that + we will not increment group* positions if we are just after a SET + ONE_SHOT, because SET ONE_SHOT should not be separated from its following + updating query. + */ + return (thd->query_error ? thd->query_error : + (thd->one_shot_set ? (rli->inc_event_relay_log_pos(get_event_len()),0) : + Log_event::exec_event(rli))); } #endif |