Description:
Sven email from earlier from the 090709:
Hi,
I noticed some errors in the replication docs:
(1) The following server variables are exceptions that are *not* unsafe, and will not cause a switch to row format:
@@session.auto_increment_increment
@@session.auto_increment_offset
@@session.character_set_client
@@session.character_set_connection
@@session.character_set_database
@@session.character_set_server
@@session.collation_connection
@@session.collation_database
@@session.collation_server
@@session.foreign_key_checks
@@session.identity
@@session.last_insert_id
@@session.lc_time_names
@@session.pseudo_thread_id
@@session.sql_auto_is_null
@@session.timestamp
@@session.time_zone
@@session.unique_checks
This should be added to the bullet "Beginning with MySQL 5.1.24, when a statement refers to one or more system variables. (Bug#31168)" at http://dev.mysql.com/doc/refman/5.1/en/binary-log-mixed.html
(2) In the list of storage engines at http://dev.mysql.com/doc/refman/5.1/en/binary-log-mixed.html, please note that Blackhole supports both RBL and SBL, and InnoDB is row-only if the transaction isolation level is read committed or read uncommitted.
(3) In the decision table at http://dev.mysql.com/doc/refman/5.1/en/binary-log-mixed.html, the RLC and SLC column headers should really read "statement logging restricted" and "row logging restricted" - the decision depends on a set of tables, not on one table. (then all N and Y need to be inverted).
(4) The section http://dev.mysql.com/doc/refman/5.1/en/replication-features-variables.html can be improved. The values of the variables listed in (3), and no others, are replicated properly if binlog_format=STATEMENT. In addition, sql_mode is replicated, except the NO_DIR_IN_CREATE flag, which is always preserved on slave (i.e., if the master changes NO_DIR_IN_CREATE, it does not affect the slave). In particular, it may not be safe to insert the value of sql_mode as data in a table when binlog_format=STATEMENT. If binlog_format=ROW or MIXED, all variables are replicated correctly (if binlog_format=MIXED, statements referencing variables other than those listed above are logged in row format).
How to repeat:
See Description.
Suggested fix:
See Description.