1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

WL#1364: Store some environmental values with SPs and use at invokation

sql_mode is stored and used with SPs.
sql_select_limit is always unlimited in SPs.


mysql-test/r/sp.result:
  Test case for mode settings.
mysql-test/t/sp.test:
  Test case for mode settings.
sql/sp.cc:
  Store the sql_mode with the SP and reset it on retrieval.
  sql_select_limit is always maximum (default) in an SP,
  regardless of the setting at the time of create or call.
This commit is contained in:
unknown
2003-12-11 12:23:50 +01:00
parent 3702a1dbc4
commit b5627bb00c
3 changed files with 73 additions and 0 deletions

View File

@ -691,6 +691,34 @@ delete from t1;
delete from t2;
drop table t3;
drop procedure cur2;
insert into t1 values ("foo", 1), ("bar", 2), ("zip", 3);
set @@sql_mode = 'ANSI';
create procedure modes(out c1 int, out c2 int)
begin
declare done int default 0;
declare x int;
declare continue handler for sqlstate '02000' set done = 1;
declare c cursor for select data from t1;
select 1 || 2 into c1;
set c2 = 0;
open c;
repeat
fetch c into x;
if not done then
set c2 = c2 + 1;
end if;
until done end repeat;
close c;
end;
set @@sql_mode = '';
set sql_select_limit = 1;
call modes(@c1, @c2);
set sql_select_limit = default;
select @c1, @c2;
@c1 @c2
12 3
delete from t1;
drop procedure modes;
create procedure bug822(a_id char(16), a_data int)
begin
declare n int;

View File

@ -816,6 +816,41 @@ drop table t3|
drop procedure cur2|
# Check mode settings
insert into t1 values ("foo", 1), ("bar", 2), ("zip", 3)|
set @@sql_mode = 'ANSI'|
delimiter $|
create procedure modes(out c1 int, out c2 int)
begin
declare done int default 0;
declare x int;
declare continue handler for sqlstate '02000' set done = 1;
declare c cursor for select data from t1;
select 1 || 2 into c1;
set c2 = 0;
open c;
repeat
fetch c into x;
if not done then
set c2 = c2 + 1;
end if;
until done end repeat;
close c;
end$
delimiter |$
set @@sql_mode = ''|
set sql_select_limit = 1|
call modes(@c1, @c2)|
set sql_select_limit = default|
select @c1, @c2|
delete from t1|
drop procedure modes|
#
# Test cases for old bugs
#