mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Fixed BUG#4579: Execution of SP crashes server.
Sub-CALLs of procedures zapped thd->current_arena for good. mysql-test/r/sp.result: New test case for BUG#4579. mysql-test/t/sp.test: New test case for BUG#4579. sql/sp_head.cc: Keep and restore old thd->current_arena before/after executing an SP, instead of just setting it to 0 afterwards.
This commit is contained in:
@ -1387,6 +1387,27 @@ group_concat(v)
|
||||
yz,yz
|
||||
drop procedure bug3368|
|
||||
drop table t3|
|
||||
drop table if exists t3|
|
||||
create table t3 (f1 int, f2 int);
|
||||
insert into t3 values (1,1);
|
||||
create procedure bug4579_1 ()
|
||||
begin
|
||||
declare sf1 int;
|
||||
select f1 into sf1 from t3 where f1=1 and f2=1;
|
||||
update t3 set f2 = f2 + 1 where f1=1 and f2=1;
|
||||
call bug4579_2();
|
||||
end|
|
||||
create procedure bug4579_2 ()
|
||||
begin
|
||||
end|
|
||||
call bug4579_1()|
|
||||
call bug4579_1()|
|
||||
Warnings:
|
||||
call bug4579_1()|
|
||||
Warnings:
|
||||
drop procedure bug4579_1|
|
||||
drop procedure bug4579_2|
|
||||
drop table t3|
|
||||
drop table if exists fac|
|
||||
create table fac (n int unsigned not null primary key, f bigint unsigned)|
|
||||
create procedure ifac(n int unsigned)
|
||||
|
@ -1592,6 +1592,36 @@ call bug3368('yz')|
|
||||
drop procedure bug3368|
|
||||
drop table t3|
|
||||
|
||||
#
|
||||
# BUG#4579
|
||||
#
|
||||
--disable_warnings
|
||||
drop table if exists t3|
|
||||
--enable_warnings
|
||||
create table t3 (f1 int, f2 int);
|
||||
insert into t3 values (1,1);
|
||||
|
||||
create procedure bug4579_1 ()
|
||||
begin
|
||||
declare sf1 int;
|
||||
|
||||
select f1 into sf1 from t3 where f1=1 and f2=1;
|
||||
update t3 set f2 = f2 + 1 where f1=1 and f2=1;
|
||||
call bug4579_2();
|
||||
end|
|
||||
|
||||
create procedure bug4579_2 ()
|
||||
begin
|
||||
end|
|
||||
|
||||
call bug4579_1()|
|
||||
call bug4579_1()|
|
||||
call bug4579_1()|
|
||||
|
||||
drop procedure bug4579_1|
|
||||
drop procedure bug4579_2|
|
||||
drop table t3|
|
||||
|
||||
|
||||
#
|
||||
# Some "real" examples
|
||||
|
Reference in New Issue
Block a user