mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Fixed BUG#3287: Stored procedure handler scope outside of begin/end.
Backpatching overwrote already backpatched instructions, which made it skip the hpop instruction; possibly not only a problem for handlers, but this is one known case when it happened.
This commit is contained in:
@@ -400,7 +400,7 @@ return (select sum(t.data) from test.t2 t)|
|
||||
# BUG#1653
|
||||
#
|
||||
--disable_warnings
|
||||
drop table if exists table_1|
|
||||
drop table if exists t3|
|
||||
--enable_warnings
|
||||
create table t3 (column_1_0 int)|
|
||||
|
||||
@@ -500,6 +500,37 @@ end case|
|
||||
call bug3287(2)|
|
||||
drop procedure bug3287|
|
||||
|
||||
|
||||
#
|
||||
# BUG#3297
|
||||
#
|
||||
--disable_warnings
|
||||
drop table if exists t3|
|
||||
--enable_warnings
|
||||
create table t3 (s1 int, primary key (s1))|
|
||||
insert into t3 values (5),(6)|
|
||||
|
||||
create procedure bug3279(out y int)
|
||||
begin
|
||||
declare x int default 0;
|
||||
begin
|
||||
declare exit handler for sqlexception set x = x+1;
|
||||
insert into t3 values (5);
|
||||
end;
|
||||
if x < 2 then
|
||||
set x = x+1;
|
||||
insert into t3 values (6);
|
||||
end if;
|
||||
set y = x;
|
||||
end|
|
||||
|
||||
set @x = 0|
|
||||
--error 1062
|
||||
call bug3279(@x)|
|
||||
select @x|
|
||||
drop procedure bug3279|
|
||||
drop table t3|
|
||||
|
||||
drop table t1|
|
||||
|
||||
delimiter ;|
|
||||
|
||||
Reference in New Issue
Block a user