mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Item::fix_field need correct pointer on item reference to chnge it if itis need, so support of correct item address added to SP commands (BUG#5963)
some optimisation of IF/NOT IF ptomised to Pem mysql-test/r/sp.result: test for bug#5963 mysql-test/t/sp.test: test for bug#5963 sql/item.cc: new method which return reference on Item for SP variables support sql/item.h: comment fixed method added sql/sp_head.cc: preparation of item made separate function we do not need new constant Item to check IF/IF NOT support of passing correct address of item for fix_fields method sql/sp_rcontext.cc: support of Item address passing to fix_fields sql/sp_rcontext.h: support of correct address passing to fix_fields sql/sql_class.cc: support of correct item address passing to fix_field
This commit is contained in:
@ -3057,4 +3057,29 @@ yes
|
||||
yes
|
||||
drop procedure bug7293|
|
||||
delete from t1|
|
||||
drop procedure if exists bug5963|
|
||||
create procedure bug5963_1 () begin declare v int; set v = (select s1 from t3); select v; end;|
|
||||
create table t3 (s1 int)|
|
||||
insert into t3 values (5)|
|
||||
call bug5963_1()|
|
||||
v
|
||||
5
|
||||
call bug5963_1()|
|
||||
v
|
||||
5
|
||||
drop procedure bug5963_1|
|
||||
drop table t3|
|
||||
create procedure bug5963_2 (cfk_value int)
|
||||
begin
|
||||
if cfk_value in (select cpk from t3) then
|
||||
set @x = 5;
|
||||
end if;
|
||||
end;
|
||||
|
|
||||
create table t3 (cpk int)|
|
||||
insert into t3 values (1)|
|
||||
call bug5963_2(1)|
|
||||
call bug5963_2(1)|
|
||||
drop procedure bug5963_2|
|
||||
drop table t3|
|
||||
drop table t1,t2;
|
||||
|
@ -3741,6 +3741,35 @@ call bug7293 ('secrete')|
|
||||
drop procedure bug7293|
|
||||
delete from t1|
|
||||
|
||||
#
|
||||
# BUG#5963 subqueries in SET/IF
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists bug5963|
|
||||
--enable_warnings
|
||||
|
||||
create procedure bug5963_1 () begin declare v int; set v = (select s1 from t3); select v; end;|
|
||||
create table t3 (s1 int)|
|
||||
insert into t3 values (5)|
|
||||
call bug5963_1()|
|
||||
call bug5963_1()|
|
||||
drop procedure bug5963_1|
|
||||
drop table t3|
|
||||
|
||||
create procedure bug5963_2 (cfk_value int)
|
||||
begin
|
||||
if cfk_value in (select cpk from t3) then
|
||||
set @x = 5;
|
||||
end if;
|
||||
end;
|
||||
|
|
||||
create table t3 (cpk int)|
|
||||
insert into t3 values (1)|
|
||||
call bug5963_2(1)|
|
||||
call bug5963_2(1)|
|
||||
drop procedure bug5963_2|
|
||||
drop table t3|
|
||||
|
||||
#
|
||||
# BUG#NNNN: New bug synopsis
|
||||
#
|
||||
|
Reference in New Issue
Block a user