diff options
author | unknown <bell@sanja.is.com.ua> | 2005-11-23 00:58:13 +0200 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2005-11-23 00:58:13 +0200 |
commit | a2c26aa7109182ede0ad1d06f53b46cc3b41e2c2 (patch) | |
tree | 090d0e3fbda21d8ca03a84a74f8b011335f23efb /mysql-test | |
parent | 57e1c5aa9a56bbe75f3a0bc8344b3a1346438bbb (diff) | |
parent | 6574612df871c5803fe79e547a20053470e39797 (diff) | |
download | mariadb-git-a2c26aa7109182ede0ad1d06f53b46cc3b41e2c2.tar.gz |
Merge sanja.is.com.ua:/home/bell/mysql/bk/work-bug2-5.0
into sanja.is.com.ua:/home/bell/mysql/bk/work-merge-5.0
sql/item.h:
Auto merged
sql/protocol.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_trigger.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/sp.result:
merge
mysql-test/r/trigger.result:
merge
mysql-test/t/sp.test:
merge
mysql-test/t/trigger.test:
merge
sql/item.cc:
merge
sql/sp_rcontext.h:
merge
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/sp.result | 17 | ||||
-rw-r--r-- | mysql-test/r/trigger.result | 14 | ||||
-rw-r--r-- | mysql-test/t/sp.test | 28 | ||||
-rw-r--r-- | mysql-test/t/trigger.test | 28 |
4 files changed, 87 insertions, 0 deletions
diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result index 93332af21a9..29a4fbaa439 100644 --- a/mysql-test/r/sp.result +++ b/mysql-test/r/sp.result @@ -3667,4 +3667,21 @@ call bug14845()| a 0 drop procedure bug14845| +drop procedure bug12589_1| +drop procedure bug12589_2| +drop procedure bug12589_3| +drop procedure if exists bug13549_1| +drop procedure if exists bug13549_2| +CREATE PROCEDURE `bug13549_2`() +begin +call bug13549_1(); +end| +CREATE PROCEDURE `bug13549_1`() +begin +declare done int default 0; +set done= not done; +end| +CALL bug13549_2()| +drop procedure bug13549_2| +drop procedure bug13549_1| drop table t1,t2; diff --git a/mysql-test/r/trigger.result b/mysql-test/r/trigger.result index af99dea58b9..9fc62ed123f 100644 --- a/mysql-test/r/trigger.result +++ b/mysql-test/r/trigger.result @@ -763,3 +763,17 @@ ERROR HY000: Table 't3' was not locked with LOCK TABLES deallocate prepare stmt1; drop procedure p1; drop table t1, t2, t3; +create table t1 (a int); +drop procedure if exists p2; +CREATE PROCEDURE `p2`() +begin +insert into t1 values (1); +end// +create trigger trg before insert on t1 for each row +begin +declare done int default 0; +set done= not done; +end// +CALL p2(); +drop procedure p2; +drop table t1; diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test index 5ad2b9287aa..022721c7794 100644 --- a/mysql-test/t/sp.test +++ b/mysql-test/t/sp.test @@ -4291,6 +4291,9 @@ call bug12589_1()| # No warnings here call bug12589_2()| call bug12589_3()| +drop procedure bug12589_1| +drop procedure bug12589_2| +drop procedure bug12589_3| # # BUG#7049: Stored procedure CALL errors are ignored @@ -4595,6 +4598,31 @@ call bug14845()| drop procedure bug14845| # +# BUG#13549 "Server crash with nested stored procedures". +# Server should not crash when during execution of stored procedure +# we have to parse trigger/function definition and this new trigger/ +# function has more local variables declared than invoking stored +# procedure and last of these variables is used in argument of NOT +# operator. +# +--disable_warnings +drop procedure if exists bug13549_1| +drop procedure if exists bug13549_2| +--enable_warnings +CREATE PROCEDURE `bug13549_2`() +begin + call bug13549_1(); +end| +CREATE PROCEDURE `bug13549_1`() +begin + declare done int default 0; + set done= not done; +end| +CALL bug13549_2()| +drop procedure bug13549_2| +drop procedure bug13549_1| + +# # BUG#NNNN: New bug synopsis # #--disable_warnings diff --git a/mysql-test/t/trigger.test b/mysql-test/t/trigger.test index 02d994128e2..daa6ac2e6fa 100644 --- a/mysql-test/t/trigger.test +++ b/mysql-test/t/trigger.test @@ -914,3 +914,31 @@ call p1(); deallocate prepare stmt1; drop procedure p1; drop table t1, t2, t3; + +# +# BUG#13549 "Server crash with nested stored procedures". +# Server should not crash when during execution of stored procedure +# we have to parse trigger/function definition and this new trigger/ +# function has more local variables declared than invoking stored +# procedure and last of these variables is used in argument of NOT +# operator. +# +create table t1 (a int); +--disable_warnings +drop procedure if exists p2; +--enable_warnings +DELIMITER //; +CREATE PROCEDURE `p2`() +begin + insert into t1 values (1); +end// +create trigger trg before insert on t1 for each row +begin + declare done int default 0; + set done= not done; +end// +DELIMITER ;// +CALL p2(); +drop procedure p2; +drop table t1; + |