heap_tuple_needs_freeze false positive
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2012-02-02T01:01:27Z
Lists: pgsql-hackers
Attachments
- heap_tuple_needs_freeze.patch (application/octet-stream) patch
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 <alvherre@alvh.no-ip.org>