From 025aadce8afa30a1bc2b17d2992fd1e93258afac Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Tue, 8 Jan 2008 18:43:25 -0200 Subject: Bug#29770 Two handlers are allowed to catch an error in an stored procedure. Add test case. --- mysql-test/t/sp.test | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'mysql-test/t') diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test index 785e7e3793c..43f89cdfdf0 100644 --- a/mysql-test/t/sp.test +++ b/mysql-test/t/sp.test @@ -7698,6 +7698,30 @@ DROP PROCEDURE db28318_a.t1; DROP PROCEDURE db28318_b.t2; DROP DATABASE db28318_a; DROP DATABASE db28318_b; +USE test; + +# +# Bug#29770 Two handlers are allowed to catch an error in an stored procedure. +# + +--disable_warnings +DROP TABLE IF EXISTS t1; +DROP PROCEDURE IF EXISTS bug29770; +--enable_warnings + +CREATE TABLE t1(a int); +delimiter |; +CREATE PROCEDURE bug29770() +BEGIN + DECLARE CONTINUE HANDLER FOR SQLSTATE '42S22' SET @state:= 'run'; + DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @exception:= 'run'; + SELECT x FROM t1; +END| +delimiter ;| +CALL bug29770(); +SELECT @state, @exception; +DROP TABLE t1; +DROP PROCEDURE bug29770; --echo # ------------------------------------------------------------------ -- cgit v1.2.1