mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Corrections to test "sp", stored procedure "fib" (see entry 9937 in the bug DB).
mysql-test/r/sp.result: Correct the result file for the changed test. mysql-test/t/sp.test: 1) Correct the "fib" stored procedure and its initial data to be mathematical correct: fib(0) = 0 2) Do a small run of "fib" first, that is not likely to hit a memory limit (see entry 9937 in the bug DB). BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
This commit is contained in:
@ -115,6 +115,7 @@ jcole@sarvik.tfr.cafe.ee
|
|||||||
jcole@tetra.spaceapes.com
|
jcole@tetra.spaceapes.com
|
||||||
jimw@mysql.com
|
jimw@mysql.com
|
||||||
joerg@mysql.com
|
joerg@mysql.com
|
||||||
|
joerg@trift-lap.fambruehe
|
||||||
jon@gigan.
|
jon@gigan.
|
||||||
jonas@mysql.com
|
jonas@mysql.com
|
||||||
joreland@bk-internal.mysql.com
|
joreland@bk-internal.mysql.com
|
||||||
|
@ -1404,11 +1404,10 @@ show procedure status like '%p%'|
|
|||||||
Db Name Type Definer Modified Created Security_type Comment
|
Db Name Type Definer Modified Created Security_type Comment
|
||||||
drop table if exists fib|
|
drop table if exists fib|
|
||||||
create table fib ( f bigint unsigned not null )|
|
create table fib ( f bigint unsigned not null )|
|
||||||
insert into fib values (1), (1)|
|
|
||||||
drop procedure if exists fib|
|
drop procedure if exists fib|
|
||||||
create procedure fib(n int unsigned)
|
create procedure fib(n int unsigned)
|
||||||
begin
|
begin
|
||||||
if n > 0 then
|
if n > 1 then
|
||||||
begin
|
begin
|
||||||
declare x, y bigint unsigned;
|
declare x, y bigint unsigned;
|
||||||
declare c cursor for select f from fib order by f desc limit 2;
|
declare c cursor for select f from fib order by f desc limit 2;
|
||||||
@ -1421,9 +1420,20 @@ call fib(n-1);
|
|||||||
end;
|
end;
|
||||||
end if;
|
end if;
|
||||||
end|
|
end|
|
||||||
|
insert into fib values (0), (1)|
|
||||||
|
call fib(3)|
|
||||||
|
select * from fib order by f asc|
|
||||||
|
f
|
||||||
|
0
|
||||||
|
1
|
||||||
|
1
|
||||||
|
2
|
||||||
|
delete from fib|
|
||||||
|
insert into fib values (0), (1)|
|
||||||
call fib(20)|
|
call fib(20)|
|
||||||
select * from fib order by f asc|
|
select * from fib order by f asc|
|
||||||
f
|
f
|
||||||
|
0
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
@ -1444,8 +1454,6 @@ f
|
|||||||
2584
|
2584
|
||||||
4181
|
4181
|
||||||
6765
|
6765
|
||||||
10946
|
|
||||||
17711
|
|
||||||
drop table fib|
|
drop table fib|
|
||||||
drop procedure fib|
|
drop procedure fib|
|
||||||
drop procedure if exists bar|
|
drop procedure if exists bar|
|
||||||
|
@ -1634,8 +1634,6 @@ drop table if exists fib|
|
|||||||
--enable_warnings
|
--enable_warnings
|
||||||
create table fib ( f bigint unsigned not null )|
|
create table fib ( f bigint unsigned not null )|
|
||||||
|
|
||||||
insert into fib values (1), (1)|
|
|
||||||
|
|
||||||
# We deliberately do it the awkward way, fetching the last two
|
# We deliberately do it the awkward way, fetching the last two
|
||||||
# values from the table, in order to exercise various statements
|
# values from the table, in order to exercise various statements
|
||||||
# and table accesses at each turn.
|
# and table accesses at each turn.
|
||||||
@ -1644,7 +1642,7 @@ drop procedure if exists fib|
|
|||||||
--enable_warnings
|
--enable_warnings
|
||||||
create procedure fib(n int unsigned)
|
create procedure fib(n int unsigned)
|
||||||
begin
|
begin
|
||||||
if n > 0 then
|
if n > 1 then
|
||||||
begin
|
begin
|
||||||
declare x, y bigint unsigned;
|
declare x, y bigint unsigned;
|
||||||
declare c cursor for select f from fib order by f desc limit 2;
|
declare c cursor for select f from fib order by f desc limit 2;
|
||||||
@ -1659,6 +1657,20 @@ begin
|
|||||||
end if;
|
end if;
|
||||||
end|
|
end|
|
||||||
|
|
||||||
|
# Minimum test: recursion of 3 levels
|
||||||
|
|
||||||
|
insert into fib values (0), (1)|
|
||||||
|
|
||||||
|
call fib(3)|
|
||||||
|
|
||||||
|
select * from fib order by f asc|
|
||||||
|
|
||||||
|
delete from fib|
|
||||||
|
|
||||||
|
# Original test: 20 levels (may run into memory limits!)
|
||||||
|
|
||||||
|
insert into fib values (0), (1)|
|
||||||
|
|
||||||
call fib(20)|
|
call fib(20)|
|
||||||
|
|
||||||
select * from fib order by f asc|
|
select * from fib order by f asc|
|
||||||
|
Reference in New Issue
Block a user