Re: pg_settings.pending_restart not set when line removed

2021-08-13 Thread Tom Lane
Alexander Kukushkin writes: > IMO is totally wrong, because the actual value didn't change: it was an > empty string in the config and now it remains an empty string due to the > default value in the guc.c I can't get very excited about that. The existing message about "parameter \"%s\" cannot

Re: pg_settings.pending_restart not set when line removed

2021-08-13 Thread Alexander Kukushkin
Hi Alvaro, On Tue, 27 Jul 2021 at 22:17, Alvaro Herrera wrote: > I tested this -- it works correctly AFAICS. > Nope, IMO it doesn't work correctly. Lets say we have recovery_target = '' in the config: localhost/postgres=# select name, setting, setting is null, pending_restart from

Re: pg_settings.pending_restart not set when line removed

2021-07-27 Thread Alvaro Herrera
On 2021-Jul-27, Tom Lane wrote: > So maybe like > > if (gconf->context < PGC_SIGHUP) > { > + /* The removal can't be effective without a restart */ > + gconf->status |= GUC_PENDING_RESTART; > ereport(elevel, >

Re: pg_settings.pending_restart not set when line removed

2021-07-27 Thread Tom Lane
Alvaro Herrera writes: > On 2021-Jul-27, Tom Lane wrote: >> Ugh. I think this patch is likely to create more problems than it fixes. > I doubt that; as I said, the code already behaves in exactly that way > for closely related operations, so this patch isn't doing anything new. > Note that that

Re: pg_settings.pending_restart not set when line removed

2021-07-27 Thread Alvaro Herrera
On 2021-Jul-27, Tom Lane wrote: > Alvaro Herrera writes: > > You could argue that this is *weird* (why does reading pg_file_settings > > set a flag in global state?) ... but that weirdness is not something > > this patch is introducing. > > Ugh. I think this patch is likely to create more

Re: pg_settings.pending_restart not set when line removed

2021-07-27 Thread Tom Lane
Alvaro Herrera writes: > You could argue that this is *weird* (why does reading pg_file_settings > set a flag in global state?) ... but that weirdness is not something > this patch is introducing. Ugh. I think this patch is likely to create more problems than it fixes. We should be looking to

Re: pg_settings.pending_restart not set when line removed

2021-07-27 Thread Daniel Gustafsson
> On 27 Jul 2021, at 01:02, Alvaro Herrera wrote: > I tried the attached patch, which sets GUC_PENDING_RESTART if we're > doing pg_file_settings(). Then any subsequent read of pg_settings will > have the pending_restart flag set. This seems to work correctly, and > consistently with the case

pg_settings.pending_restart not set when line removed

2021-07-26 Thread Alvaro Herrera
Hi I got a report from Gabriele Bartolini and team that the pg_settings view does not get the pending_restart flag set when a setting's line is removed from a file (as opposed to its value changed). The explanation seems to be that GUC_PENDING_RESTART is set by set_config_option, but when