1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

BUG#49019 Mixing self-logging eng. and regular eng. does not switch to row in mixed mode

Backport of the patch for 5.1-bugteam.
This commit is contained in:
Alfranio Correia
2010-05-09 23:45:25 +01:00
parent 455f754e6b
commit f438d08aee
3 changed files with 70 additions and 0 deletions

View File

@@ -5183,6 +5183,16 @@ int decide_logging_format(THD *thd, TABLE_LIST *tables)
thd->variables.binlog_format));
DBUG_PRINT("info", ("multi_engine: %s",
multi_engine ? "TRUE" : "FALSE"));
/*
Reading from a self-logging engine and updating another engine
generates changes that are written to the binary log in the
statement format and may make slaves to diverge. In the mixed
mode, such changes should be written to the binary log in the
row format.
*/
if (multi_engine &&
(flags_some_set & HA_HAS_OWN_BINLOGGING))
thd->lex->set_stmt_unsafe();
int error= 0;
if (flags_all_set == 0)