mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Fix fur BUG#13348: "multi-table updates and deletes are not logged if no rows were affected".
Not fixed in 4.1 as not critical. Also I'm correcting error checking of multi-UPDATE/DELETE when it comes to binlogging, to make it consistent with when we rollback the statement. mysql-test/r/rpl_multi_delete.result: result update mysql-test/r/rpl_multi_update.result: result update mysql-test/t/rpl_multi_delete.test: test for BUG#13348 mysql-test/t/rpl_multi_update.test: test of BUG#13348 sql/sql_delete.cc: We now binlog multi-DELETE even if no row was updated (like we do for DELETE). I'm also correcting some error checking (< instead of <=), basing myself on when we rollback. sql/sql_update.cc: we now binlog multi-UPDATE even if no row was updated (like we do for UPDATE). Adding to existing tests to test new behaviour. I'm also correcting some error checking (< instead of <=), basing myself on when we rollback.
This commit is contained in:
@@ -24,3 +24,26 @@ connection slave;
|
||||
sync_with_master;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
# Check if updating 0 rows is binlogged (BUG#13348)
|
||||
|
||||
connection master;
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
insert into t1 values(1,1);
|
||||
insert into t2 values(1,1);
|
||||
|
||||
connection slave;
|
||||
# force a difference to see if master's multi-UPDATE will correct it
|
||||
update t1 set a=2;
|
||||
|
||||
connection master;
|
||||
UPDATE t1, t2 SET t1.a = t2.a;
|
||||
|
||||
sync_slave_with_master;
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
|
||||
connection master;
|
||||
drop table t1, t2;
|
||||
sync_slave_with_master;
|
||||
|
||||
Reference in New Issue
Block a user