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.
> In the meantime,I have another anxiety. init_irels()
> (RelationCacheInitialize()) seems to be called while
> Locking is disabled.
This should fix that problem, too.
regards, tom lane