pg_reload_conf()

Started by Marc Millasabout 3 years ago4 messagesgeneral
Jump to latest
#1Marc Millas
marc.millas@mokadb.com

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

Marc MILLAS
Senior Architect
+33607850334
www.mokadb.com

#2Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Marc Millas (#1)
Re: pg_reload_conf()

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

#3David G. Johnston
david.g.johnston@gmail.com
In reply to: Marc Millas (#1)
Re: pg_reload_conf()

On Mon, Feb 20, 2023 at 9:57 AM Marc Millas <marc.millas@mokadb.com> wrote:

select pg_reload_conf();
t

So, 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.

#4Marc Millas
marc.millas@mokadb.com
In reply to: Adrian Klaver (#2)
Re: pg_reload_conf()

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.

Marc MILLAS
Senior Architect
+33607850334
www.mokadb.com

On Mon, Feb 20, 2023 at 6:01 PM Adrian Klaver <adrian.klaver@aklaver.com>
wrote:

Show quoted text

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