heap_freeze_tuple() was apparently designed at one point to cope with being called with either a shared or exclusive buffer lock. But none of the current callers call it with a shared lock; they all call it with an exclusive lock, except for the heap-rewrite code which doesn't take (or need) a lock at all. But, meanwhile, the comments for that function claim that vacuum does call it that way, which is incorrect, and AFAICT has been at least since HOT went in. Attached is a proposed patch that cleans all of this up by removing support for calling it with just a shared lock and removing or adjusting various related comments.
Since this is just dead code removal, I propose to apply this to 9.2. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
heap-freeze-exclusive-only.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