summaryrefslogtreecommitdiff
path: root/sql/sql_insert.cc
diff options
context:
space:
mode:
authorAlfranio Correia <alfranio.correia@oracle.com>2011-01-28 12:09:15 +0000
committerAlfranio Correia <alfranio.correia@oracle.com>2011-01-28 12:09:15 +0000
commit66abb3d1bb14df507ae034f138c02260ef984989 (patch)
treeb8f2fa4b3142b8ae4769837d3fea7cb2af76cfc9 /sql/sql_insert.cc
parent610393709f66ce28262a0711de415e744c5675bb (diff)
downloadmariadb-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.cc2
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)
{