Thread: pg_reload_conf()
Hi,
maybe I am missing something...
with superuser rights, on a postgres 14 and postgres 15 version:
select setting, boot_val, reset_val from pg_settings where name='log_connections';
off off off
alter system set log_connections to 'on';
select setting, boot_val, reset_val from pg_settings where name='log_connections';
off off off
... strange
select pg_reload_conf();
t
select setting, boot_val, reset_val from pg_settings where name='log_connections';
off off off
very strange.
cat postgresql.auto.conf
log_connections = 'on'
obviously, if I stop and restart the DB,
select setting, boot_val, reset_val from pg_settings where name='log_connections';
on off on
So, I am perplexed: what pg_reload_conf() is doing/not doing ?
thanks
On 2/20/23 08:57, Marc Millas wrote: > select setting, boot_val, reset_val from pg_settings where > name='log_connections'; # select setting, boot_val, reset_val, context from pg_settings where name='log_connections'; setting | boot_val | reset_val | context ---------+----------+-----------+------------------- on | off | on | superuser-backend https://www.postgresql.org/docs/15/view-pg-settings.html There are several possible values of context. In order of decreasing difficulty of changing the setting, they are: ... superuser-backend Changes to these settings can be made in postgresql.conf without restarting the server. They can also be set for a particular session in the connection request packet (for example, via libpq's PGOPTIONS environment variable), but only if the connecting user is a superuser or has been granted the appropriate SET privilege. However, these settings never change in a session after it is started. If you change them in postgresql.conf, send a SIGHUP signal to the postmaster to cause it to re-read postgresql.conf. The new values will only affect subsequently-launched sessions. ... -- Adrian Klaver adrian.klaver@aklaver.com
On Mon, Feb 20, 2023 at 9:57 AM Marc Millas <marc.millas@mokadb.com> wrote:
select pg_reload_conf();tSo, I am perplexed: what pg_reload_conf() is doing/not doing ?
It is sending a signal and stating success that said signal was sent.
David J.
Thanks Adrian,
the fact that the changes are visible only by the new backend, and NOT by the backend which did the changes was what I did missed.
On Mon, Feb 20, 2023 at 6:01 PM Adrian Klaver <adrian.klaver@aklaver.com> wrote:
On 2/20/23 08:57, Marc Millas wrote:
> select setting, boot_val, reset_val from pg_settings where
> name='log_connections';
# select setting, boot_val, reset_val, context from pg_settings where
name='log_connections';
setting | boot_val | reset_val | context
---------+----------+-----------+-------------------
on | off | on | superuser-backend
https://www.postgresql.org/docs/15/view-pg-settings.html
There are several possible values of context. In order of decreasing
difficulty of changing the setting, they are:
...
superuser-backend
Changes to these settings can be made in postgresql.conf without
restarting the server. They can also be set for a particular session in
the connection request packet (for example, via libpq's PGOPTIONS
environment variable), but only if the connecting user is a superuser or
has been granted the appropriate SET privilege. However, these settings
never change in a session after it is started. If you change them in
postgresql.conf, send a SIGHUP signal to the postmaster to cause it to
re-read postgresql.conf. The new values will only affect
subsequently-launched sessions.
...
--
Adrian Klaver
adrian.klaver@aklaver.com