summaryrefslogtreecommitdiff
path: root/mysql-test/t/rpl_row_sp009.test
diff options
context:
space:
mode:
authorlars@mysql.com <>2005-12-22 06:39:02 +0100
committerlars@mysql.com <>2005-12-22 06:39:02 +0100
commitad126d90e019f223470e73e1b2b528f9007c4532 (patch)
tree192a6c65973c50f6a436a8c6e6bb19efa2ed2419 /mysql-test/t/rpl_row_sp009.test
parent0f8f444b8be51db1265a3c30a576c9e404b86071 (diff)
downloadmariadb-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.test105
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