mariadb/mysql-test/main/stack.result
Vladislav Vaintroub df602ff7fa Fix main.stack on Windows
A part of the test, that tests that a frame of recursive SP takes the
same amount of stack, relies on the fact that 3 calls to that
SP are executed in the same OS thread. This is not guaranteed with
threadpool(not with Windows native threadpool, anyway)

Fix the test to execute SP calls in the same thread, as semicolon-separated
batched command.
2025-01-16 23:04:59 +01:00

47 lines
1.1 KiB
Text

# Checking stack usage
#
# basic tests
#
select variable_value > 0 from information_schema.session_status where variable_name="stack_usage";
variable_value > 0
1
#
# Ensure stack usage is same for each iteration when using WITH recursive
#
create table t1
WITH recursive Fibonacci(PrevN, N, Stack) AS
(
SELECT 0, 1, 0
UNION ALL
SELECT N, PrevN + N, (select variable_value from information_schema.session_status where variable_name="stack_usage")
FROM Fibonacci
WHERE N < 100000
)
SELECT PrevN as N, Stack FROM Fibonacci;
select (select stack from t1 where n=2) = (select stack from t1 where N=75025) as c;
c
1
DROP table t1;
#
# Check stack with recursion
#
set @@max_sp_recursion_depth=20;
create or replace procedure recursion(x int, max int, OUT res int)
begin
select variable_value into res from information_schema.session_status where variable_name="stack_usage";
if (x < max) then
call recursion(x+1, max, res);
end if;
end;
$$
call recursion(0,2,@s1);
call recursion(0,3,@s2);
call recursion(0,4,@s3);
$$
select @s1 > 0 && @s2 > 0 && @s3 > 0;
@s1 > 0 && @s2 > 0 && @s3 > 0
1
drop procedure recursion;
#
# End of 10.5 tests
#