Sawada Masahiko <sawada.m...@gmail.com> writes:
> As per discussion
> <http://www.postgresql.org/message-id/cad21aodkds8oqbr199wwrcp7fidvow6bbb+cgdwqhuf+gx_...@mail.gmail.com>,
> I would like to proposal new view like pg_file_settings to know detail
> of config file via SQL.

> - Background
> In 9.4 postgresql.auto.conf is added to support ALTER SYSTEM command
> and that config file is loaded after whenever postgresql.conf is
> loaded.
> That is, postgresql.auto.conf is quite high priority so that the value
> in postgresql.conf can not work at all if DBA set it manually.
> ALTER SYSTEM RESET command can remove the unnecessary value in
> postgresql.auto.conf but  there are no way to know about where the
> value has came from.
> (They can only give the information about the setting in last file it
> is present.)

> - Solution
> The patch not is implemented yet, just proposing now.
> I'm imaging that we can have new pg_file_settings view has following
> column to store current assigned value in config file.
>  - guc value name
>  - guc value
>  - config file path (e.g. /opt/data/postgresql.sql,
> /opt/data/postgresql.auto.conf, /opt/hoge.conf)
> This view could be convenient for DBA to decide if the
> postgresql.auto.conf is useful or not and if it's not useful then DBA
> could use ALTER SYSTEM .. RESET command to remove the same from
> postgresql.auto.conf.

> Also other idea is to add additional columns existing view
> (pg_settings), according to prev discussion.

> Please give me comments.

I still don't understand what problem you think needs to be solved.
It's already perfectly clear from the pg_settings view when a value
came from postgresql.auto.conf.  For instance:


regression=# select name,setting,source,sourcefile,sourceline from pg_settings 
where name = 'TimeZone';
   name   |  setting   |       source       |                   sourcefile      
              | sourceline 
----------+------------+--------------------+-------------------------------------------------+------------
 TimeZone | US/Eastern | configuration file | 
/home/postgres/testversion/data/postgresql.conf |        531
(1 row)

regression=# alter system set timezone = 'Asia/Shanghai';
ALTER SYSTEM
regression=# select pg_reload_conf();
 pg_reload_conf 
----------------
 t
(1 row)

regression=# select name,setting,source,sourcefile,sourceline from pg_settings 
where name = 'TimeZone';
   name   |    setting    |       source       |                      
sourcefile                      | sourceline 
----------+---------------+--------------------+------------------------------------------------------+------------
 TimeZone | Asia/Shanghai | configuration file | 
/home/postgres/testversion/data/postgresql.auto.conf |          3
(1 row)

regression=# alter system reset timezone;
ALTER SYSTEM
regression=# select pg_reload_conf();
 pg_reload_conf 
----------------
 t
(1 row)

regression=# select name,setting,source,sourcefile,sourceline from pg_settings 
where name = 'TimeZone';
   name   |  setting   |       source       |                   sourcefile      
              | sourceline 
----------+------------+--------------------+-------------------------------------------------+------------
 TimeZone | US/Eastern | configuration file | 
/home/postgres/testversion/data/postgresql.conf |        531
(1 row)


What else is needed?

                        regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to