Re: pg_settings.pending_restart not set when line removed

From: Alexander Kukushkin <cyberdemn(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Pg Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: pg_settings.pending_restart not set when line removed
Date: 2021-08-13 14:30:39
Message-ID: CAFh8B=k==4VjEDHv0RFCL40+CN5rC686yTM2eOboEyAWK9hM9A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Alvaro,

On Tue, 27 Jul 2021 at 22:17, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
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 pg_settings where name = 'recovery_target';
name │ setting │ ?column? │ pending_restart
─────────────────┼─────────┼──────────┼─────────────────
recovery_target │ │ f │ f
(1 row)

After that we remove it from the config and call pg_ctl reload. It sets the
panding_restart.
localhost/postgres=# select name, setting, setting is null, pending_restart
from pg_settings where name = 'recovery_target';
name │ setting │ ?column? │ pending_restart
─────────────────┼─────────┼──────────┼─────────────────
recovery_target │ │ f │ t
(1 row)

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

Regards,
--
Alexander Kukushkin

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2021-08-13 14:45:38 Re: pg_settings.pending_restart not set when line removed
Previous Message David G. Johnston 2021-08-13 14:09:15 Re: Default to TIMESTAMP WITH TIME ZONE?