I have just realized that getrlimit(RLIMIT_STACK) is a pretty widely
available syscall --- it's specified by the Single Unix Spec and the
man pages claim it works on all the platforms I have handy to check.
I propose that we make use of this call where available to prevent
people from setting max_stack_depth larger than, say, the current
stack rlimit less half a megabyte. This will prevent pilot error
such as here:
http://archives.postgresql.org/pgsql-bugs/2006-10/msg00053.php
It'd be even nicer to not have a max_stack_depth GUC at all, but
it's probably untenable to assume that getrlimit is available on
every platform.
Thoughts?
regards, tom lane