Tom Lane wrote:
>
> Hiroshi Inoue <Inoue@tpf.co.jp> writes:
> > Tom Lane wrote:
> >> "Hiroshi Inoue" <Inoue@tpf.co.jp> writes:
> >>>> It seems that init_irels() should be called after
> >>>> InitializeTransactionSystem() was called.
> >>
> >> Can we just swap the order of the RelationCacheInitialize() and
> >> InitializeTransactionSystem() calls in InitPostgres? If that
> >> works, I'd have no objection.
>
> > It doesn't work. InitializeTransactionSystem() requires
> > pg_log/pg_variable relations which are already built in
> > RelationCacheInitialize().
>
> OK. Second proposal: do the init_irels() call in
> RelationCacheInitializePhase2(). I've just looked through the
> other stuff that's done in between, and I don't think any of it
> needs valid relcache entries.
>
Oops, I neglected to reply "agreed", sorry.
It would be much safer for init_irels() to be called
in a proper transaction than the current implementation.
Regards.
Hiroshi Inoue