diff options
author | Alfranio Correia <alfranio.correia@oracle.com> | 2011-01-28 12:09:15 +0000 |
---|---|---|
committer | Alfranio Correia <alfranio.correia@oracle.com> | 2011-01-28 12:09:15 +0000 |
commit | 66abb3d1bb14df507ae034f138c02260ef984989 (patch) | |
tree | b8f2fa4b3142b8ae4769837d3fea7cb2af76cfc9 /sql/sql_insert.cc | |
parent | 610393709f66ce28262a0711de415e744c5675bb (diff) | |
download | mariadb-git-66abb3d1bb14df507ae034f138c02260ef984989.tar.gz |
BUG#59338 Inconsistency in binlog for statements that don't change any rows STATEMENT SBR
In SBR, if a statement does not fail, it is always written to the binary
log, regardless if rows are changed or not. If there is a failure, a
statement is only written to the binary log if a non-transactional (.e.g.
MyIsam) engine is updated.
INSERT ON DUPLICATE KEY UPDATE and INSERT IGNORE were not following the
rule above and were not written to the binary log, if then engine was
Innodb.
Diffstat (limited to 'sql/sql_insert.cc')
-rw-r--r-- | sql/sql_insert.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index f0735a9e093..e2f93ee4de5 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -881,7 +881,7 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list, */ query_cache_invalidate3(thd, table_list, 1); } - if ((changed && error <= 0) || + if (error <= 0 || thd->transaction.stmt.modified_non_trans_table || was_insert_delayed) { |