Some buildfarm members fail the test with the original depth of 10 levels,
apparently because they are running at the minimum max_stack_depth setting
of 100kB and using ~ 10k per recursion level. While it might be
interesting to try to figure out why they're eating so much stack, it isn't
likely that any fix for that would be back-patchable. So just change the
test to recurse only 5 levels. The extra levels don't prove anything
correctness-wise anyway.
create function recurse(float8) returns float8 as
$$
begin
- if ($1 < 10) then
- return sql_recurse($1 + 1);
+ if ($1 > 0) then
+ return sql_recurse($1 - 1);
else
return $1;
end if;
-- "limit" is to prevent this from being inlined
create function sql_recurse(float8) returns float8 as
$$ select recurse($1) limit 1; $$ language sql;
-select recurse(0);
+select recurse(5);
recurse
---------
- 10
+ 0
(1 row)
create function error1(text) returns text language sql as
create function recurse(float8) returns float8 as
$$
begin
- if ($1 < 10) then
- return sql_recurse($1 + 1);
+ if ($1 > 0) then
+ return sql_recurse($1 - 1);
else
return $1;
end if;
create function sql_recurse(float8) returns float8 as
$$ select recurse($1) limit 1; $$ language sql;
-select recurse(0);
+select recurse(5);
create function error1(text) returns text language sql as
$$ SELECT relname::text FROM pg_class c WHERE c.oid = $1::regclass $$;