Tom Lane wrote:
> Alvaro Herrera <alvherre@commandprompt.com> writes:
> > Tom Lane wrote:
> >> This just seems truly messy :-(. Let me see if I can find something
> >> cleaner.
>
> > I was considering having InitPostgres be an umbrella function, so that
> > extant callers stay as today, but the various underlying pieces are
> > skipped depending on who's calling. For example I didn't like the bit
> > about starting a transaction or not depending on whether it was the
> > launcher.
>
> Yeah. If you have InitPostgres know that much about the AV launcher's
> requirements, it's not clear why it shouldn't just know everything.
> Having it return with the initial transaction still open just seems
> completely horrid.
How about this?
> While I was looking at this I wondered whether
> RelationCacheInitializePhase2 really needs to be inside the startup
> transaction at all. I think it could probably be moved up before
> that. However, if the AV launcher has to do GetTransactionSnapshot
> then it's not clear that improves matters anyway.
Well, the difference is that the initial transaction would be a few
microsec shorter ... not sure if that matters.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.