Details
-
Bug
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
-
5.5.28
-
None
-
None
Description
MySQL's change in 5.5:
revno: 3077.146.18
|
revision-id: rohit.kalhans@oracle.com-20120209175833-n71vkdiivf8nblwi
|
parent: rohit.kalhans@oracle.com-20120208064055-0anncx3a6ml6e4ax
|
committer: Rohit Kalhans <rohit.kalhans@oracle.com>
|
branch nick: mysql-5.5_b11758263
|
timestamp: Thu 2012-02-09 23:28:33 +0530
|
message:
|
BUG#11758263 50440: MARK UNORDERED UPDATE WITH AUTOINC UNSAFE
|
 |
Problem: Statements that write to tables with auto_increment columns
|
based on the selection from another table, may lead to master
|
and slave going out of sync, as the order in which the rows
|
are retrieved from the table may differ on master and slave.
|
|
Solution: We mark writing to a table with auto_increment table
|
based on the rows selected from another table as unsafe. This
|
will cause the execution of such statements to throw a warning
|
and forces the statement to be logged in ROW if the logging
|
format is mixed.
|
|
Changes:
|
1. All the statements that writes to a table with auto_increment
|
column(s) based on the rows fetched from another table, will now
|
be unsafe.
|
2. CREATE TABLE with SELECT will now be unsafe.
|
it is supposed to cover the case of
INSERT table_with_autoinc SELECT NULL, * FROM another_table; |
because rows are retrieved from another_table in the unspecified order, and auto_increment values will be attached to this rows in the unspecified order.
But it also marks "unsafe" multi-table updates that do not even change the value of the auto_increment column. This is incorrect.