summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2005-11-23 00:58:13 +0200
committerunknown <bell@sanja.is.com.ua>2005-11-23 00:58:13 +0200
commita2c26aa7109182ede0ad1d06f53b46cc3b41e2c2 (patch)
tree090d0e3fbda21d8ca03a84a74f8b011335f23efb /mysql-test
parent57e1c5aa9a56bbe75f3a0bc8344b3a1346438bbb (diff)
parent6574612df871c5803fe79e547a20053470e39797 (diff)
downloadmariadb-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.result17
-rw-r--r--mysql-test/r/trigger.result14
-rw-r--r--mysql-test/t/sp.test28
-rw-r--r--mysql-test/t/trigger.test28
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;
+