Hi all,
In InitPostgres()(postinit.c) I see the following code.
RelationCacheInitialize(); /* pre-allocated reldescs created here
*/
InitializeTransactionSystem(); /* pg_log,etc init/crash recovery
here */
init_irels() is at the end of RelationCacheInitialize() and
accesses system tables to build some system index
relations. However InitializeTransactionSystem() isn't
called at this point and so TransactionIdDidCommit()
always returns true. Time qualification doesn't work
properly under such a situation.
It seems that init_irels() should be called after
InitializeTransactionSystem() was called.
Comments ?
Regards.
Hiroshi Inoue