Allowed change context
Every configuration setting has an associated context in which it's allowed to be changed. The best way to determine the allowed change context for a setting is to ask the database directly. The following example shows one entry with each context type (the actual result if you run this query will include every server parameter):
postgres=# select name,context from pg_settings; name | context ----------------------------+------------ archive_command | sihup archive_mode | postmaster block_size | internal log_connections | backend log_min_duration_statement | superuser search_path | user
The context field isn't documented very well in the official manual. Here are the meanings of the various settings you'll find there, sorted from hardest to easiest to change:
internal
: These settings are mainly database internals set at compile time. They're...