Обсуждение: values of column source in pg_settings
Hi all,
I could find several distinct values for column “source” in pg_settings view. Examples of these values are: client, environment variable, configuration file, default, database, override, session.
Are there other values?
The documentation doesn’t mention any thing (Any way I didn’t find).
In some of my databases, I have this:
postgres# select name, source from pg_settings where source like 'environ%';
name | source
-----------------+----------------------
max_stack_depth | environment variable
What is the meaning of ‘environment_variable’ here?
For the other listed values, I have “almost” got it but I don’t see anything for “environment variable”.
Thanks in advance
Michel SALAIS
postgres# select name, source from pg_settings where source like 'environ%';
name | source
-----------------+------------
---------- max_stack_depth | environment variable
What is the meaning of ‘environment_variable’ here?
I could find several distinct values for column “source” in pg_settings view. Examples of these values are: client, environment variable, configuration file, default, database, override, session.
Are there other values?
On Wed, 2025-09-10 at 12:39 -0700, David G. Johnston wrote: > > postgres# select name, source from pg_settings where source like 'environ%'; > > name | source > > -----------------+---------------------- > > max_stack_depth | environment variable > > > > What is the meaning of ‘environment_variable’ here? > > Operating system and/or shell variable. Established in the parent process’s environment before starting the server. Almost. "src/backend/utils/misc/guc.c" has this comment: /* * rlimit isn't exactly an "environment variable", but it behaves about * the same. If we can identify the platform stack depth rlimit, increase * default stack depth setting up to whatever is safe (but at most 2MB). * Report the value's source as PGC_S_DYNAMIC_DEFAULT if it's 2MB, or as * PGC_S_ENV_VAR if it's reflecting the rlimit limit. */ Looking at the code, you seem to get "environment variable" if "ulimit -s" is less than 2560 and "default" when it is bigger... Yours, Laurenz Albe