Bug #47266 Errors/omissions in replication docs
Submitted: 11 Sep 2009 9:03 Modified: 14 Sep 2009 9:33
Reporter: Jon Stephens Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S2 (Serious)
Version:5.1+ OS:Any
Assigned to: Jon Stephens CPU Architecture:Any

[11 Sep 2009 9:03] Jon Stephens
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.
[14 Sep 2009 9:33] Jon Stephens
Thank you for your bug report. This issue has been addressed in the documentation. The updated documentation will appear on our website shortly, and will be included in the next release of the relevant products.