30 lines
995 B
SQL
30 lines
995 B
SQL
-- Check that stack depth detection mechanism works and
|
|
-- max_stack_depth is not set too high.
|
|
|
|
create function infinite_recurse() returns int as
|
|
'select infinite_recurse()' language sql;
|
|
|
|
-- Unfortunately, up till mid 2020 the Linux kernel had a bug in PPC64
|
|
-- signal handling that would cause this test to crash if it happened
|
|
-- to receive an sinval catchup interrupt while the stack is deep:
|
|
-- https://bugzilla.kernel.org/show_bug.cgi?id=205183
|
|
-- It is likely to be many years before that bug disappears from all
|
|
-- production kernels, so disable this test on such platforms.
|
|
-- (We still create the function, so as not to have a cross-platform
|
|
-- difference in the end state of the regression database.)
|
|
|
|
SELECT version() ~ 'powerpc64[^,]*-linux-gnu'
|
|
AS skip_test \gset
|
|
\if :skip_test
|
|
\quit
|
|
\endif
|
|
|
|
-- The full error report is not very stable, so we show only SQLSTATE
|
|
-- and primary error message.
|
|
|
|
\set VERBOSITY sqlstate
|
|
|
|
select infinite_recurse();
|
|
|
|
\echo :LAST_ERROR_MESSAGE
|