Handling of build-time enabled GUC settings

Started by Peter Eisentrautabout 20 years ago2 messages
#1Peter Eisentraut
peter_e@gmx.net

I've noticed some inconsistencies in the handling of build-time enabled GUC
setttings. For example, a non-SSL enabled server will happily accept ssl =
on and simply ignore it. On the other hand, several syslog related
parameters are not accepted at all when syslog is not enabled.

I propose that in the interest of greatest flexibility, configuration-file
sharing etc. we do it as follows: All parameters are accepted all the time.
(The exception will be the few odd debugging parameters which are marked
GUC_NOT_IN_SAMPLE; we can handle those any way we want to.) Those that
cannot take effect because of build-time configuration have to use a
check/assign hook to prevent settings that cannot be honored. This would
mean that ssl = on has to be prevented. As another example, syslog_facility
and syslog_ident are accepted with all values but log_destination will not
accept syslog if that is not available. (The latter is the current
behavior.)

#2Bruce Momjian
pgman@candle.pha.pa.us
In reply to: Peter Eisentraut (#1)
Re: Handling of build-time enabled GUC settings

Peter Eisentraut wrote:

I've noticed some inconsistencies in the handling of build-time enabled GUC
setttings. For example, a non-SSL enabled server will happily accept ssl =
on and simply ignore it. On the other hand, several syslog related
parameters are not accepted at all when syslog is not enabled.

I propose that in the interest of greatest flexibility, configuration-file
sharing etc. we do it as follows: All parameters are accepted all the time.
(The exception will be the few odd debugging parameters which are marked
GUC_NOT_IN_SAMPLE; we can handle those any way we want to.) Those that
cannot take effect because of build-time configuration have to use a
check/assign hook to prevent settings that cannot be honored. This would
mean that ssl = on has to be prevented. As another example, syslog_facility
and syslog_ident are accepted with all values but log_destination will not
accept syslog if that is not available. (The latter is the current
behavior.)

Agreed. We should also mark the parameters that require a server
restart clearer somehow, perhaps '[restart]' in postgresql.conf.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073