diff options
author | lars@mysql.com <> | 2005-12-22 06:39:02 +0100 |
---|---|---|
committer | lars@mysql.com <> | 2005-12-22 06:39:02 +0100 |
commit | ad126d90e019f223470e73e1b2b528f9007c4532 (patch) | |
tree | 192a6c65973c50f6a436a8c6e6bb19efa2ed2419 /mysql-test/t/rpl_row_sp009.test | |
parent | 0f8f444b8be51db1265a3c30a576c9e404b86071 (diff) | |
download | mariadb-git-ad126d90e019f223470e73e1b2b528f9007c4532.tar.gz |
WL#1012: All changes as one single changeset.
This includes both code and test cases.
Diffstat (limited to 'mysql-test/t/rpl_row_sp009.test')
-rw-r--r-- | mysql-test/t/rpl_row_sp009.test | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/mysql-test/t/rpl_row_sp009.test b/mysql-test/t/rpl_row_sp009.test new file mode 100644 index 00000000000..b06267df783 --- /dev/null +++ b/mysql-test/t/rpl_row_sp009.test @@ -0,0 +1,105 @@ +############################################################################# +# Original Author: JBM # +# Original Date: Aug/18/2005 # +# Updated: 08/29/2005 removed sleeps and added master pos save and snyc # +############################################################################# +#TEST: Taken and modfied from http://bugs.mysql.com/bug.php?id=12168 # +############################################################################# + +# Includes +-- source include/have_binlog_format_row.inc +-- source include/master-slave.inc + + +# Begin clean up test section +connection master; +--disable_warnings +DROP PROCEDURE IF EXISTS test.p1; +DROP TABLE IF EXISTS test.t1; +DROP TABLE IF EXISTS test.t2; + + +# Begin test section 1 +CREATE TABLE test.t1 (a INT, PRIMARY KEY(a)); +INSERT INTO test.t1 VALUES (1),(2),(3),(4); +CREATE TABLE test.t2 (a INT, PRIMARY KEY(a)); + +delimiter |; +CREATE PROCEDURE test.p1 (arg1 CHAR(1)) +BEGIN + DECLARE b, c INT; + IF arg1 = 'a' THEN + BEGIN + DECLARE cur1 CURSOR FOR SELECT A FROM test.t1 WHERE a % 2; + DECLARE continue handler for not found set b = 1; + SET b = 0; + OPEN cur1; + c1_repeat: REPEAT + FETCH cur1 INTO c; + IF (b = 1) THEN + LEAVE c1_repeat; + END IF; + + INSERT INTO test.t2 VALUES (c); + UNTIL b = 1 + END REPEAT; + CLOSE cur1; + END; + END IF; + IF arg1 = 'b' THEN + BEGIN + DECLARE cur2 CURSOR FOR SELECT a FROM test.t1 WHERE NOT a % 2; + DECLARE continue handler for not found set b = 1; + SET b = 0; + OPEN cur2; + c2_repeat: REPEAT + FETCH cur2 INTO c; + IF (b = 1) THEN + LEAVE c2_repeat; + END IF; + + INSERT INTO test.t2 VALUES (c); + UNTIL b = 1 + END REPEAT; + CLOSE cur2; + END; + END IF; +END| +delimiter ;| + +CALL test.p1('a'); +SELECT * FROM test.t2; +save_master_pos; +connection slave; +sync_with_master; +SELECT * FROM test.t2; +connection master; +truncate test.t2; + +# this next call fails, but should not +call test.p1('b'); +select * from test.t2; +save_master_pos; +connection slave; +sync_with_master; +SELECT * FROM test.t2; + +connection master; +truncate test.t2; +SELECT * FROM test.t2; +save_master_pos; +connection slave; +sync_with_master; +SELECT * FROM test.t2; + + +connection master; +#show binlog events; +# lets cleanup + +DROP PROCEDURE test.p1; +DROP TABLE test.t1; +DROP TABLE test.t2; + + +# End of 5.0 test case |