On 2013-11-29 22:27:16 +0100, Andres Freund wrote: > Looking at predicate.c I think I see a bigger problem though: Isn't its > usage of HeapTupleSatisfiesVacuum() quite dangerous? It passes > TransactionXmin to HeapTupleSatisfiesVacuum(). But since that's just the > transaction's own cutoff, not the global cutoff that will cause wrong > hint bits to be set. Or am I missing something? > HTSV's comment says: > * > * OldestXmin is a cutoff XID (obtained from GetOldestXmin()). Tuples > * deleted by XIDs >= OldestXmin are deemed "recently dead"; they might > * still be visible to some open transaction, so we can't remove them, > * even if we see that the deleting transaction has committed. > */
Strike that, sorry for the noise. I was thinking there was some conditional hint bit setting based on OldestXmin in there, but I was misremembering. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers