Thread: "Alter system" command documentation
Hi,
Isn't it unfortunate that the command used for changing the configuration file from within SQL mentions SIGHUP and pg_ctl reload, but not "select pg_reload_conf();", as a way to activate that change?
Cheers,
Cheers,
Jeff
On 15-06-2015 13:32, Jeff Janes wrote: > From http://www.postgresql.org/docs/current/static/sql-altersystem.html > > "Values set with ALTER SYSTEM will be effective after the next server > configuration reload (SIGHUP or pg_ctl reload), or after the next server > restart in the case of parameters that can only be changed at server start." > > Isn't it unfortunate that the command used for changing the > configuration file from within SQL mentions SIGHUP and pg_ctl reload, > but not "select pg_reload_conf();", as a way to activate that change? > SIGHUP is an implementation detail. If I were to change that sentence, my preference is replace SIGHUP with pg_reload_conf. -- Euler Taveira Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
SIGHUP is an implementation detail. If I were to change that sentence,On 15-06-2015 13:32, Jeff Janes wrote:
> From http://www.postgresql.org/docs/current/static/sql-altersystem.html
>
> "Values set with ALTER SYSTEM will be effective after the next server
> configuration reload (SIGHUP or pg_ctl reload), or after the next server
> restart in the case of parameters that can only be changed at server start."
>
> Isn't it unfortunate that the command used for changing the
> configuration file from within SQL mentions SIGHUP and pg_ctl reload,
> but not "select pg_reload_conf();", as a way to activate that change?
>
my preference is replace SIGHUP with pg_reload_conf.
I
disagree on SIGHUP being an implementation detail.
Using signals in IPC (inter-process communication) is a public API that should be documented when applicable. Yes, various command-line and SQL commands and functions have been provided so that one does not have to use raw signals but they are still part of the public API for the application.
Adding mention of pg_reload_conf may be warranted (probably is but I haven't made an independent evaluation) but removing SIGHUP is a separate concern and one that doesn't seem necessary.
David J.
David G. Johnston wrote: > On Mon, Jun 15, 2015 at 4:58 PM, Euler Taveira <euler@timbira.com.br> wrote: > > > On 15-06-2015 13:32, Jeff Janes wrote: > > > Isn't it unfortunate that the command used for changing the > > > configuration file from within SQL mentions SIGHUP and pg_ctl > > > reload, but not "select pg_reload_conf();", as a way to activate > > > that change? > > > > > SIGHUP is an implementation detail. If I were to change that > > sentence, my preference is replace SIGHUP with pg_reload_conf. > > I disagree on SIGHUP being an implementation detail. Using signals in > IPC (inter-process communication) is a public API that should be > documented when applicable. Agreed. However, I don't think it makes sense to document that either SIGHUP, pg_ctl reload, and pg_reload_conf() can be used whenever a parameter reload is mentioned; that would bloat too much (in a quick grep, I see at least 10-15 places where SIGHUP or "reload" is mentioned in the context of config files.) Maybe we should have one section somewhere, saying "reload is executed by any of the following:" and list them all. Then this place and others could simply say "these values are effective after reload, about which see section X.Y.Z". -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
On Mon, Jun 15, 2015 at 2:10 PM, David G. Johnston <david.g.johnston@gmail.com> wrote:
SIGHUP is an implementation detail. If I were to change that sentence,On 15-06-2015 13:32, Jeff Janes wrote:
> From http://www.postgresql.org/docs/current/static/sql-altersystem.html
>
> "Values set with ALTER SYSTEM will be effective after the next server
> configuration reload (SIGHUP or pg_ctl reload), or after the next server
> restart in the case of parameters that can only be changed at server start."
>
> Isn't it unfortunate that the command used for changing the
> configuration file from within SQL mentions SIGHUP and pg_ctl reload,
> but not "select pg_reload_conf();", as a way to activate that change?
>
my preference is replace SIGHUP with pg_reload_conf.I disagree on SIGHUP being an implementation detail. Using signals in IPC (inter-process communication) is a public API that should be documented when applicable. Yes, various command-line and SQL commands and functions have been provided so that one does not have to use raw signals but they are still part of the public API for the application.Adding mention of pg_reload_conf may be warranted (probably is but I haven't made an independent evaluation) but removing SIGHUP is a separate concern and one that doesn't seem necessary.
Certainly SIGHUP should be (and is) documented elsewhere in the docs. But there is no reason for it to be documented on this particular page, which is about a command we added specifically so you can make config changes without having to drop into an OS shell. If we are going to mention (on this particularly page) only some of the ways to trigger a reload, certainly the way that also doesn't require dropping into an OS shell should be among the ones included. I don't know that pg_reload_conf() should be the only one we mention here. But surely it should not be the only one we don't mention.
The cleanest way would probably be to mention this in addition to the other two, as to mention only this one might imply the others don't work for this purpose. We could not mention any of them and let the person go read the other parts of the docs on their own to find the methods used to trigger a reload, but that seems legalistic and unhelpful.
In any event, I was mildly annoyed to go read the docs about a feature I was aware of but never needed to use it before, and have it tell me about two things which I already knew about but which aren't very useful in this context (that is, not having convenient shell access at the moment), while not telling me about the third option which actually is useful in this context but which I didn't know how to spell (because I almost always use the other two methods instead--except for right now).
Cheers,
Jeff
On 15-06-2015 21:14, Alvaro Herrera wrote: > Maybe we should have one section > somewhere, saying "reload is executed by any of the following:" and list > them all. Then this place and others could simply say "these values are > effective after reload, about which see section X.Y.Z". > +1. -- Euler Taveira Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento