mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Handle user variables (@-vars) as OUT and INOUT parameters in SPs.
mysql-test/r/sp.result: Test cases for user variables (@-vars) as OUT and INOUT parameters. mysql-test/t/sp.test: Test cases for user variables (@-vars) as OUT and INOUT parameters. sql/item_func.h: We need to be able to detect Item_func_get_user_vars when used as arguments to SPs. sql/sp_head.cc: Handle user variables (@-vars) as OUT and INOUT parameters. But we still just ignore it, if it's anything else.
This commit is contained in:
@ -93,8 +93,12 @@ id data
|
||||
zip 100
|
||||
delete from t1;
|
||||
drop procedure zip;
|
||||
drop procedure zap;
|
||||
drop procedure bar;
|
||||
call zap(7, @zap);
|
||||
select @zap;
|
||||
@zap
|
||||
8
|
||||
drop procedure zap;
|
||||
create procedure c1(x int)
|
||||
call c2("c", x);
|
||||
create procedure c2(s char(16), x int)
|
||||
@ -132,7 +136,17 @@ io1 1
|
||||
delete from t1;
|
||||
drop procedure iotest;
|
||||
drop procedure inc2;
|
||||
create procedure incr(inout x int)
|
||||
call inc(x);
|
||||
select @zap;
|
||||
@zap
|
||||
8
|
||||
call incr(@zap);
|
||||
select @zap;
|
||||
@zap
|
||||
9
|
||||
drop procedure inc;
|
||||
drop procedure incr;
|
||||
create procedure cbv1()
|
||||
begin
|
||||
declare y int default 3;
|
||||
|
@ -122,9 +122,14 @@ call zip("zip", 99)|
|
||||
select * from t1|
|
||||
delete from t1|
|
||||
drop procedure zip|
|
||||
drop procedure zap|
|
||||
drop procedure bar|
|
||||
|
||||
# Top-level OUT parameter
|
||||
call zap(7, @zap)|
|
||||
select @zap|
|
||||
|
||||
drop procedure zap|
|
||||
|
||||
|
||||
# "Deep" calls...
|
||||
create procedure c1(x int)
|
||||
@ -165,8 +170,19 @@ select * from t1|
|
||||
delete from t1|
|
||||
drop procedure iotest|
|
||||
drop procedure inc2|
|
||||
drop procedure inc|
|
||||
|
||||
# Propagating top-level @-vars
|
||||
create procedure incr(inout x int)
|
||||
call inc(x)|
|
||||
|
||||
# Before
|
||||
select @zap|
|
||||
call incr(@zap)|
|
||||
# After
|
||||
select @zap|
|
||||
|
||||
drop procedure inc|
|
||||
drop procedure incr|
|
||||
|
||||
# Call-by-value test
|
||||
# The expected result is:
|
||||
|
Reference in New Issue
Block a user