Re: Add pg_settings.pending_restart column
От | Robert Haas |
---|---|
Тема | Re: Add pg_settings.pending_restart column |
Дата | |
Msg-id | CA+TgmoYSyQ_35gyOYA6pyrqKtDsSevZ8Yb++kcj+z_6er_4zBw@mail.gmail.com обсуждение исходный текст |
Ответ на | Add pg_settings.pending_restart column (Peter Eisentraut <peter_e@gmx.net>) |
Ответы |
Re: Add pg_settings.pending_restart column
|
Список | pgsql-hackers |
On Sat, Feb 14, 2015 at 10:18 PM, Peter Eisentraut <peter_e@gmx.net> wrote: > When managing configuration changes through automatic systems like Chef > or Puppet, there is a problem: How do you manage changes requiring a > restart? > > Generally, you'd set it up so that when a configuration file is changed, > the server is reloaded. But for settings that require a restart, well, > I don't know. From discussions with others, it emerged that a way to > ask the server whether a restart is necessary would be useful. Then you > can either automate the restart, or have a monitoring system warn you > about it, and possibly schedule a restart separately or undo the > configuration file change. > > So here is a patch for that. It adds a column pending_restart to > pg_settings that is true when the configuration file contains a changed > setting that requires a restart. We already had the logic to detect > such changes, for producing the log entry. I have also set it up so > that if you change your mind and undo the setting and reload the server, > the pending_restart flag is reset to false. You don't really need the "else" here, and in parallel cases: if (*conf->variable != newval) { + record->status |= GUC_PENDING_RESTART; ereport(elevel, (errcode(ERRCODE_CANT_CHANGE_RUNTIME_PARAM), errmsg("parameter \"%s\" cannotbe changed without restarting the server", name))); return 0; } + else + record->status &= ~GUC_PENDING_RESTART; return -1; The if-statement ends with "return 0" so there is no reason for the "else". -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: