Thread: include_dir catch-22

include_dir catch-22

From
Craig Ringer
Date:
There is, IMO, a significant oversight with the include_dir feature.

If a distributor wants to enable it by default at initdb time, they
can't just turn it on in postgresql.conf.sample, because initdb will die
when the postgres backend refuses to start because the configdir is missing.

Yet the configdir cannot exist, or initdb will refuse to run.

IMO we should just treat the configdir as implicitly if_exists, but
otherwise, there needs to be a separate if_exists option.

I'll gladly submit a patch to fix this for 9.4, I just want an opinion
on which way to go first.

("initdb then 'sed' the config file afterwards" is not an answer)

-- Craig Ringer                   http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services



Re: include_dir catch-22

From
Craig Ringer
Date:
On 06/18/2014 03:30 PM, Craig Ringer wrote:
> There is, IMO, a significant oversight with the include_dir feature.
> 
> If a distributor wants to enable it by default at initdb time, they
> can't just turn it on in postgresql.conf.sample, because initdb will die
> when the postgres backend refuses to start because the configdir is missing.
> 
> Yet the configdir cannot exist, or initdb will refuse to run.
> 
> IMO we should just treat the configdir as implicitly if_exists, but
> otherwise, there needs to be a separate if_exists option.
> 
> I'll gladly submit a patch to fix this for 9.4, I just want an opinion
> on which way to go first.

Oh, and while it's possible for include_if_exists, you get a spammy
initdb like:

creating template1 database in testdb/base/1 ... LOG:  skipping missing
configuration file "/home/ec2-user/testdb/some.conf"
< 2014-06-18 04:05:15.194 EDT >LOG:  skipping missing configuration file
"/home/ec2-user/testdb/some.conf"
ok
initializing pg_authid ... LOG:  skipping missing configuration file
"/home/ec2-user/testdb/some.conf"
< 2014-06-18 04:05:15.894 EDT >LOG:  skipping missing configuration file
"/home/ec2-user/testdb/some.conf"
ok
initializing dependencies ... LOG:  skipping missing configuration file
"/home/ec2-user/testdb/some.conf"
< 2014-06-18 04:05:15.927 EDT >LOG:  skipping missing configuration file
"/home/ec2-user/testdb/some.conf"
ok





-- Craig Ringer                   http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services