more on initdb

Started by Andrew Dunstanover 22 years ago9 messages
#1Andrew Dunstan
andrew@dunslane.net

Is there any reason other than historical that the System Views setup
isn't a separate script fed to postgres by initdb, like, say, the
information schema file? If there isn't a good reason should we unwire
it as part of moving to a C version of initdb?

cheers

andrew

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#1)
Re: more on initdb

Andrew Dunstan <andrew@dunslane.net> writes:

Is there any reason other than historical that the System Views setup
isn't a separate script fed to postgres by initdb, like, say, the
information schema file? If there isn't a good reason should we unwire
it as part of moving to a C version of initdb?

Just historical, and go for it.

regards, tom lane

PS: please don't send stuff bcc to pgsql-hackers. I was fortunate to
notice this in my probable-spam folder before deleting it ...

#3Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#2)
Re: more on initdb

Tom Lane wrote:

PS: please don't send stuff bcc to pgsql-hackers. I was fortunate to
notice this in my probable-spam folder before deleting it ...

Yeah, that was a fat finger mistake.

cheers

andrew

#4Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#2)
Re: more on initdb

Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

Is there any reason other than historical that the System Views setup
isn't a separate script fed to postgres by initdb, like, say, the
information schema file? If there isn't a good reason should we unwire
it as part of moving to a C version of initdb?

Just historical, and go for it.

I might. :-) Actually, it has struck me that the way we go about doing
initdb is kinda hokey, again probably for historic reasons, and that if
it were being redesigned from scratch today a better way would be to
have an cluster image built at compile time and just copied and tweaked
at runtime. Almost all the required info appears to be known at compile
time, AFAICS. I assume we don't expect people to hack the input files
like postgres.bki or information_schema.sql.

My aim has been to get something that will enable a complete Windows
build (i.e. no shell or other external reliance) when the fork/signal
problems on Windows are solved, and I think I am already at that point,
at least as far as my testing has been able to go - the proof of the
pudding will be in the eating. So making a change like I suggested above
would be a longer term issue. I guess it ain't broke so it doesn't need
to be fixed, so I'm not sure if it would be worth it.

Thoughts?

cheers

andrew

#5Peter Eisentraut
peter_e@gmx.net
In reply to: Andrew Dunstan (#4)
Re: more on initdb

Andrew Dunstan writes:

I might. :-) Actually, it has struck me that the way we go about doing
initdb is kinda hokey, again probably for historic reasons, and that if
it were being redesigned from scratch today a better way would be to
have an cluster image built at compile time and just copied and tweaked
at runtime.

One of the constraints that would make this difficult is that during the
build process you cannot run the programs you just compiled, at least not
without opening a can of worms.

--
Peter Eisentraut peter_e@gmx.net

#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#4)
Re: more on initdb

Andrew Dunstan <andrew@dunslane.net> writes:

I guess it ain't broke so it doesn't need
to be fixed, so I'm not sure if it would be worth it.

That's about my feeling. There's nothing wrong with the initdb process,
other than its dependency on shell scripting, and so no visible gain to
be had by reimplementing it further than replacing the shell script.

regards, tom lane

#7Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#6)
Re: more on initdb

Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

I guess it ain't broke so it doesn't need
to be fixed, so I'm not sure if it would be worth it.

That's about my feeling. There's nothing wrong with the initdb process,
other than its dependency on shell scripting, and so no visible gain to
be had by reimplementing it further than replacing the shell script.

OK, I'm happy enough with that - just throwing out ideas.

cheers

andrew

#8Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#4)
Re: more on initdb

Andrew Dunstan <andrew@dunslane.net> writes:

initdb is kinda hokey, again probably for historic reasons, and that if
it were being redesigned from scratch today a better way would be to
have an cluster image built at compile time and just copied and tweaked
at runtime. Almost all the required info appears to be known at compile
time, AFAICS.

One thing we would rather not have to freeze at compile time is the
locale settings...

regards, tom lane

#9Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#8)
Re: more on initdb

Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

initdb is kinda hokey, again probably for historic reasons, and that if
it were being redesigned from scratch today a better way would be to
have an cluster image built at compile time and just copied and tweaked
at runtime. Almost all the required info appears to be known at compile
time, AFAICS.

One thing we would rather not have to freeze at compile time is the
locale settings...

That would have been one of the tweaks :-) Anyway, I'll let sleeping
dogs lie.

cheers

andrew