Hi, I noticed that heap_tuple_needs_freeze might return true in cases where the Xmax is leftover junk from somebody who set HEAP_XMAX_INVALID in the far past without resetting the Xmax value itself to Invalid. I think this is incorrect usage; the rule, I think, is that one shouldn't even read Xmax at all unless HEAP_XMAX_INVALID is reset.
This might cause unnecessary acquisitions of the cleanup lock, if a tuple is deemed freezable when in fact it isn't. Suggested patch attached. I'd backpatch this as far as it applies cleanly. -- Álvaro Herrera <alvhe...@alvh.no-ip.org>
heap_tuple_needs_freeze.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers