Independent of the discussion of how to edit configuration files from
SQL, I had another idea how many of the use cases for this could be handled.
We already have the ability to store in pg_db_role_setting configuration
settings for
specific user, specific database
specific user, any database
any user, specific database
The existing infrastructure would also support
any user, any database (= all the time)
All you'd need is to add
ApplySetting(InvalidOid, InvalidOid, relsetting, PGC_S_$SOMETHING);
in postinit.c, and have some SQL command to modify this setting.
The only thing you couldn't handle that way are SIGHUP settings, but the
often-cited use cases work_mem, logging, etc. would work.
There would also be the advantage that pg_dumpall would save these settings.
Thoughts?