> 22 марта 2019 г., в 17:03, Heikki Linnakangas <hlinn...@iki.fi> написал(а):
>
I was working on new version of gist check in amcheck and understand one more
thing:
/* Can this page be recycled yet? */
bool
gistPageRecyclable(Page page)
{
return PageIsNew(page) ||
(GistPageIsDeleted(page) &&
TransactionIdPrecedes(GistPageGetDeleteXid(page), RecentGlobalXmin));
}
Here RecentGlobalXmin can wraparound and page will become unrecyclable for half
of xid cycle. Can we prevent it by resetting PageDeleteXid to
InvalidTransactionId before doing RecordFreeIndexPage()?
(Seems like same applies to GIN...)
Best regards, Andrey Borodin.