diff options
author | He Zhenxing <zhenxing.he@sun.com> | 2009-04-09 14:31:09 +0800 |
---|---|---|
committer | He Zhenxing <zhenxing.he@sun.com> | 2009-04-09 14:31:09 +0800 |
commit | a15e25f8520396451160955f4e506589386e40fb (patch) | |
tree | b32f04ee8fe49b36a5739d4c960f710d82ff0f8c /mysql-test/suite | |
parent | caaa8531bd1098d7e5d0efec6f87fbf4eac46043 (diff) | |
parent | fb5bc0a39d57125e131e1de603234183d5e33f08 (diff) | |
download | mariadb-git-a15e25f8520396451160955f4e506589386e40fb.tar.gz |
Auto merge
Diffstat (limited to 'mysql-test/suite')
-rw-r--r-- | mysql-test/suite/rpl/r/rpl_idempotency.result | 20 | ||||
-rw-r--r-- | mysql-test/suite/rpl/r/rpl_skip_error.result | 74 | ||||
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_idempotency.test | 16 | ||||
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_skip_error.test | 105 |
4 files changed, 181 insertions, 34 deletions
diff --git a/mysql-test/suite/rpl/r/rpl_idempotency.result b/mysql-test/suite/rpl/r/rpl_idempotency.result index f39d0f1f37f..3341c03db0f 100644 --- a/mysql-test/suite/rpl/r/rpl_idempotency.result +++ b/mysql-test/suite/rpl/r/rpl_idempotency.result @@ -141,9 +141,9 @@ select * from ti1 order by b /* must be (2),(3) */; b 2 3 -*** slave must stop +*** slave must stop (Trying to delete a referenced foreing key) Last_SQL_Error -0 +1451 select * from ti1 order by b /* must be (1),(2),(3) - not deleted */; b 1 @@ -159,7 +159,7 @@ set global slave_exec_mode='STRICT'; *** conspire future problem delete from ti1 where b=3; insert into ti2 set a=3, b=3 /* offending write event */; -*** slave must stop +*** slave must stop (Trying to insert an invalid foreign key) Last_SQL_Error 1452 select * from ti2 order by b /* must be (2,2) */; @@ -179,7 +179,7 @@ a b *** conspiring query insert into ti1 set b=1; insert into ti1 set b=1 /* offending write event */; -*** slave must stop +*** slave must stop (Trying to insert a dupliacte key) Last_SQL_Error 1062 set foreign_key_checks= 0; @@ -195,32 +195,32 @@ INSERT INTO t2 VALUES (-1),(-2),(-3); DELETE FROM t1 WHERE a = -2; DELETE FROM t2 WHERE a = -2; DELETE FROM t1 WHERE a = -2; -*** slave must stop +*** slave must stop (Key was not found) Last_SQL_Error 1032 set global slave_exec_mode='IDEMPOTENT'; start slave sql_thread; set global slave_exec_mode='STRICT'; DELETE FROM t2 WHERE a = -2; -*** slave must stop +*** slave must stop (Key was not found) Last_SQL_Error -0 +1032 set global slave_exec_mode='IDEMPOTENT'; start slave sql_thread; set global slave_exec_mode='STRICT'; UPDATE t1 SET a = 1 WHERE a = -1; UPDATE t2 SET a = 1 WHERE a = -1; UPDATE t1 SET a = 1 WHERE a = -1; -*** slave must stop +*** slave must stop (Key was not found) Last_SQL_Error 1032 set global slave_exec_mode='IDEMPOTENT'; start slave sql_thread; set global slave_exec_mode='STRICT'; UPDATE t2 SET a = 1 WHERE a = -1; -*** slave must stop +*** slave must stop (Key was not found) Last_SQL_Error -0 +1032 set global slave_exec_mode='IDEMPOTENT'; start slave sql_thread; SET @@global.slave_exec_mode= @old_slave_exec_mode; diff --git a/mysql-test/suite/rpl/r/rpl_skip_error.result b/mysql-test/suite/rpl/r/rpl_skip_error.result index 205c7785349..d955859f030 100644 --- a/mysql-test/suite/rpl/r/rpl_skip_error.result +++ b/mysql-test/suite/rpl/r/rpl_skip_error.result @@ -74,19 +74,16 @@ Last_SQL_Error drop table t1; create table t1(a int primary key); insert into t1 values (1),(2); -delete from t1 where @@server_id=1; -Warnings: -Note 1592 Statement is not safe to log in statement format. +SET SQL_LOG_BIN=0; +delete from t1; +SET SQL_LOG_BIN=1; set sql_mode=strict_trans_tables; -insert into t1 values (7), (8), (9); +insert into t1 values (1), (2), (3); [on slave] select * from t1; a 1 2 -7 -8 -9 SHOW SLAVE STATUS; Slave_IO_State # Master_Host 127.0.0.1 @@ -128,3 +125,66 @@ Last_SQL_Errno 0 Last_SQL_Error ==== Clean Up ==== drop table t1; +==== Using Innodb ==== +SET SQL_LOG_BIN=0; +CREATE TABLE t1(id INT NOT NULL PRIMARY KEY, data INT) Engine=InnoDB; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `id` int(11) NOT NULL, + `data` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +SET SQL_LOG_BIN=1; +CREATE TABLE t1(id INT NOT NULL PRIMARY KEY, data INT) Engine=InnoDB; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `id` int(11) NOT NULL, + `data` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +INSERT INTO t1 VALUES(1, 1); +INSERT INTO t1 VALUES(2, 1); +INSERT INTO t1 VALUES(3, 1); +INSERT INTO t1 VALUES(4, 1); +SET SQL_LOG_BIN=0; +DELETE FROM t1 WHERE id = 4; +SET SQL_LOG_BIN=1; +UPDATE t1 SET id= id + 3, data = 2; + +**** We cannot execute a select as there are differences in the +**** behavior between STMT and RBR. +==== Using MyIsam ==== +SET SQL_LOG_BIN=0; +CREATE TABLE t2(id INT NOT NULL PRIMARY KEY, data INT) Engine=MyIsam; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `id` int(11) NOT NULL, + `data` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SET SQL_LOG_BIN=1; +CREATE TABLE t2(id INT NOT NULL PRIMARY KEY, data INT) Engine=MyIsam; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `id` int(11) NOT NULL, + `data` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +INSERT INTO t2 VALUES(1, 1); +INSERT INTO t2 VALUES(2, 1); +INSERT INTO t2 VALUES(3, 1); +INSERT INTO t2 VALUES(5, 1); +SET SQL_LOG_BIN=0; +DELETE FROM t2 WHERE id = 5; +SET SQL_LOG_BIN=1; +UPDATE t2 SET id= id + 3, data = 2; + +**** We cannot execute a select as there are differences in the +**** behavior between STMT and RBR. +==== Clean Up ==== +DROP TABLE t1; +DROP TABLE t2; diff --git a/mysql-test/suite/rpl/t/rpl_idempotency.test b/mysql-test/suite/rpl/t/rpl_idempotency.test index 1946aa100ab..bfd1860759e 100644 --- a/mysql-test/suite/rpl/t/rpl_idempotency.test +++ b/mysql-test/suite/rpl/t/rpl_idempotency.test @@ -208,7 +208,7 @@ select * from ti1 order by b /* must be (2),(3) */; # foreign key: row is referenced ---echo *** slave must stop +--echo *** slave must stop (Trying to delete a referenced foreing key) connection slave; source include/wait_for_slave_sql_to_stop.inc; @@ -242,7 +242,7 @@ delete from ti1 where b=3; connection master; insert into ti2 set a=3, b=3 /* offending write event */; ---echo *** slave must stop +--echo *** slave must stop (Trying to insert an invalid foreign key) connection slave; source include/wait_for_slave_sql_to_stop.inc; @@ -281,7 +281,7 @@ insert into ti1 set b=1; connection master; insert into ti1 set b=1 /* offending write event */; ---echo *** slave must stop +--echo *** slave must stop (Trying to insert a dupliacte key) connection slave; source include/wait_for_slave_sql_to_stop.inc; @@ -316,7 +316,7 @@ DELETE FROM t2 WHERE a = -2; connection master; DELETE FROM t1 WHERE a = -2; ---echo *** slave must stop +--echo *** slave must stop (Key was not found) connection slave; source include/wait_for_slave_sql_to_stop.inc; @@ -333,8 +333,8 @@ sync_slave_with_master; set global slave_exec_mode='STRICT'; connection master; -DELETE FROM t2 WHERE a = -2; ---echo *** slave must stop +DELETE FROM t2 WHERE a = -2; +--echo *** slave must stop (Key was not found) connection slave; source include/wait_for_slave_sql_to_stop.inc; @@ -356,7 +356,7 @@ UPDATE t2 SET a = 1 WHERE a = -1; connection master; UPDATE t1 SET a = 1 WHERE a = -1; ---echo *** slave must stop +--echo *** slave must stop (Key was not found) connection slave; source include/wait_for_slave_sql_to_stop.inc; @@ -376,7 +376,7 @@ set global slave_exec_mode='STRICT'; connection master; UPDATE t2 SET a = 1 WHERE a = -1; ---echo *** slave must stop +--echo *** slave must stop (Key was not found) connection slave; source include/wait_for_slave_sql_to_stop.inc; diff --git a/mysql-test/suite/rpl/t/rpl_skip_error.test b/mysql-test/suite/rpl/t/rpl_skip_error.test index cac797d3797..9c6aa3dcb57 100644 --- a/mysql-test/suite/rpl/t/rpl_skip_error.test +++ b/mysql-test/suite/rpl/t/rpl_skip_error.test @@ -8,18 +8,23 @@ # ==== Method ==== # # We run the slave with --slave-skip-errors=1062 (the code for -# duplicate key). On slave, we insert value 1 in a table, and then, -# on master, we insert value 1 in the table. The error should be -# ignored on slave. -# +# duplicate key). Then we have two set of tests. In the first +# set, we insert value 1 in a table on the slave, and then, on +# master, we insert value 1 in the table. In the second set, we +# insert several values on the master, disable the binlog and +# delete one of the values and re-enable the binlog. Right after, +# we perform an update on the set of values in order to generate +# a duplicate key on the slave. The errors should be ignored on +# the slave. +# # ==== Related bugs ==== # # BUG#28839: Errors in strict mode silently stop SQL thread if --slave-skip-errors exists -# bug in this test: BUG#30594: rpl.rpl_skip_error is nondeterministic +# bug in this test: BUG#30594: rpl.rpl_skip_error is nondeterministic: +# BUG#39393: slave-skip-errors does not work when using ROW based replication source include/master-slave.inc; -source include/have_binlog_format_statement.inc; - +source include/have_innodb.inc; --echo ==== Test Without sql_mode=strict_trans_tables ==== @@ -64,9 +69,11 @@ sync_slave_with_master; connection master; create table t1(a int primary key); insert into t1 values (1),(2); -delete from t1 where @@server_id=1; +SET SQL_LOG_BIN=0; +delete from t1; +SET SQL_LOG_BIN=1; set sql_mode=strict_trans_tables; -insert into t1 values (7), (8), (9); +insert into t1 values (1), (2), (3); --echo [on slave] sync_slave_with_master; @@ -80,3 +87,83 @@ connection master; drop table t1; sync_slave_with_master; # End of 5.0 tests + +# +# BUG#39393: slave-skip-errors does not work when using ROW based replication +# +--echo ==== Using Innodb ==== + +connection master; + +SET SQL_LOG_BIN=0; +CREATE TABLE t1(id INT NOT NULL PRIMARY KEY, data INT) Engine=InnoDB; +SHOW CREATE TABLE t1; +SET SQL_LOG_BIN=1; + +connection slave; + +CREATE TABLE t1(id INT NOT NULL PRIMARY KEY, data INT) Engine=InnoDB; +SHOW CREATE TABLE t1; + +connection master; + +INSERT INTO t1 VALUES(1, 1); +INSERT INTO t1 VALUES(2, 1); +INSERT INTO t1 VALUES(3, 1); +INSERT INTO t1 VALUES(4, 1); + +SET SQL_LOG_BIN=0; +DELETE FROM t1 WHERE id = 4; +SET SQL_LOG_BIN=1; +UPDATE t1 SET id= id + 3, data = 2; + +sync_slave_with_master; + +let $error= query_get_value("SHOW SLAVE STATUS", Last_SQL_Error, 1); +echo $error; + +--echo **** We cannot execute a select as there are differences in the +--echo **** behavior between STMT and RBR. + +--echo ==== Using MyIsam ==== + +connection master; + +SET SQL_LOG_BIN=0; +CREATE TABLE t2(id INT NOT NULL PRIMARY KEY, data INT) Engine=MyIsam; +SHOW CREATE TABLE t2; +SET SQL_LOG_BIN=1; + +connection slave; + +CREATE TABLE t2(id INT NOT NULL PRIMARY KEY, data INT) Engine=MyIsam; +SHOW CREATE TABLE t2; + +connection master; + +INSERT INTO t2 VALUES(1, 1); +INSERT INTO t2 VALUES(2, 1); +INSERT INTO t2 VALUES(3, 1); +INSERT INTO t2 VALUES(5, 1); + +SET SQL_LOG_BIN=0; +DELETE FROM t2 WHERE id = 5; +SET SQL_LOG_BIN=1; +UPDATE t2 SET id= id + 3, data = 2; + +sync_slave_with_master; + +let $error= query_get_value("SHOW SLAVE STATUS", Last_SQL_Error, 1); +echo $error; + +--echo **** We cannot execute a select as there are differences in the +--echo **** behavior between STMT and RBR. + +--echo ==== Clean Up ==== + +connection master; + +DROP TABLE t1; +DROP TABLE t2; + +sync_slave_with_master; |