summaryrefslogtreecommitdiff
path: root/sql/log.cc
diff options
context:
space:
mode:
authorunknown <mats@mysql.com>2005-02-23 19:58:54 +0100
committerunknown <mats@mysql.com>2005-02-23 19:58:54 +0100
commit1f2b46fa0f8bb4bd8039b45d73a300efc331722f (patch)
tree82893cc72fc828aba1e57e447573329e17425c52 /sql/log.cc
parentcc97be60bac6758f120bd8a7a453831f7614b84c (diff)
parent6a0e1def63b56f0c4c4c5873e70146c731189478 (diff)
downloadmariadb-git-1f2b46fa0f8bb4bd8039b45d73a300efc331722f.tar.gz
Bug#8412: Merge from 4.0
mysql-test/r/rpl_insert_id.result: Auto merged mysql-test/t/rpl_insert_id.test: Auto merged sql/log.cc: Merge from 4.0
Diffstat (limited to 'sql/log.cc')
-rw-r--r--sql/log.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/sql/log.cc b/sql/log.cc
index 46b44837e0f..32574ca4a0d 100644
--- a/sql/log.cc
+++ b/sql/log.cc
@@ -1389,6 +1389,7 @@ COLLATION_CONNECTION=%u,COLLATION_DATABASE=%u,COLLATION_SERVER=%u",
p= strmov(strmov(buf, "SET CHARACTER SET "),
thd->variables.convert_set->name);
Query_log_event e(thd, buf, (ulong) (p - buf), 0);
+ e.error_code = 0; // This statement cannot fail (see [1]).
e.set_log_pos(this);
if (e.write(file))
goto err;
@@ -1407,12 +1408,22 @@ COLLATION_CONNECTION=%u,COLLATION_DATABASE=%u,COLLATION_SERVER=%u",
{
Query_log_event e(thd, "SET FOREIGN_KEY_CHECKS=0", 24, 0, FALSE);
e.set_log_pos(this);
+ e.error_code = 0; // This statement cannot fail (see [1]).
if (e.write(file))
goto err;
}
}
- /* Write the SQL command */
+ /*
+ Write the SQL command
+
+ [1] If this statement has an error code, the slave is required to fail
+ with the same error code or stop. The preamble and epilogue should
+ *not* have this error code since the execution of those is
+ guaranteed *not* to produce any error code. This would therefore
+ stop the slave even if the execution of the real statement can be
+ handled gracefully by the slave.
+ */
event_info->set_log_pos(this);
if (event_info->write(file))
@@ -1426,6 +1437,7 @@ COLLATION_CONNECTION=%u,COLLATION_DATABASE=%u,COLLATION_SERVER=%u",
{
Query_log_event e(thd, "SET FOREIGN_KEY_CHECKS=1", 24, 0, FALSE);
e.set_log_pos(this);
+ e.error_code = 0; // This statement cannot fail (see [1]).
if (e.write(file))
goto err;
}