2005-12-22 06:39:02 +01:00
|
|
|
# It's true only in statement-based replication that a statement which
|
|
|
|
# updates no rows (UPDATE/DELETE) is binlogged; in row-based
|
|
|
|
# replication, as we log modified rows, nothing is binlogged in this
|
|
|
|
# case. So this test is meaningul only in statement-based (and if it was
|
|
|
|
# enabled in row-based, it would fail as expected).
|
|
|
|
|
2006-08-30 09:22:43 +02:00
|
|
|
-- source include/have_binlog_format_mixed_or_statement.inc
|
2005-12-22 06:39:02 +01:00
|
|
|
|
|
|
|
source include/master-slave.inc;
|
|
|
|
|
|
|
|
# see if DROP DATABASE is binlogged even if no effect
|
|
|
|
connection slave;
|
|
|
|
create database mysqltest;
|
|
|
|
connection master;
|
|
|
|
drop database if exists mysqltest;
|
|
|
|
sync_slave_with_master;
|
|
|
|
# can't read dir
|
|
|
|
--replace_result "Errcode: 1" "Errcode: X" "Errcode: 2" "Errcode: X" \\ /
|
|
|
|
--error 1049
|
|
|
|
show tables from mysqltest;
|
|
|
|
|
|
|
|
# see if DROP TABLE is binlogged even if no effect
|
|
|
|
connection slave;
|
|
|
|
create table t1 (a int);
|
|
|
|
connection master;
|
|
|
|
drop table if exists t1;
|
|
|
|
sync_slave_with_master;
|
|
|
|
# table does not exist
|
|
|
|
--error 1146
|
|
|
|
select * from t1;
|
|
|
|
|
|
|
|
# see if single-table DELETE is binlogged even if no effect
|
|
|
|
connection master;
|
|
|
|
create table t1 (a int, b int);
|
|
|
|
sync_slave_with_master;
|
|
|
|
insert into t1 values(1,1);
|
|
|
|
connection master;
|
|
|
|
delete from t1;
|
|
|
|
sync_slave_with_master;
|
|
|
|
select * from t1;
|
|
|
|
|
|
|
|
# see if single-table UPDATE is binlogged even if no effect
|
|
|
|
insert into t1 values(1,1);
|
|
|
|
connection master;
|
|
|
|
insert into t1 values(2,1);
|
|
|
|
update t1 set a=2;
|
|
|
|
sync_slave_with_master;
|
|
|
|
select * from t1;
|
|
|
|
|
|
|
|
# End of 4.1 tests
|
|
|
|
|
|
|
|
# see if multi-table UPDATE is binlogged even if no effect (BUG#13348)
|
|
|
|
|
|
|
|
connection master;
|
|
|
|
create table t2 (a int, b int);
|
|
|
|
delete from t1;
|
|
|
|
insert into t1 values(1,1);
|
|
|
|
insert into t2 values(1,1);
|
|
|
|
|
|
|
|
sync_slave_with_master;
|
|
|
|
# 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;
|
|
|
|
|
|
|
|
# See if multi-table DELETE is binlogged even if no effect
|
|
|
|
|
|
|
|
connection master;
|
|
|
|
delete from t1;
|
|
|
|
delete from t2;
|
|
|
|
|
|
|
|
sync_slave_with_master;
|
|
|
|
# force a difference to see if master's multi-DELETE will correct it
|
|
|
|
insert into t1 values(1,1);
|
|
|
|
insert into t2 values(1,1);
|
|
|
|
|
|
|
|
connection master;
|
|
|
|
DELETE t1.*, t2.* from t1, t2;
|
|
|
|
|
|
|
|
sync_slave_with_master;
|
|
|
|
select * from t1;
|
|
|
|
select * from t2;
|
|
|
|
|
|
|
|
|
|
|
|
# cleanup
|
|
|
|
connection master;
|
2006-05-31 23:34:28 +02:00
|
|
|
drop table t1, t2;
|
2005-12-22 06:39:02 +01:00
|
|
|
sync_slave_with_master;
|