On Sun, Nov 11, 2012 at 6:24 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> I already pointed out the inconsistency in heap_xlog_freeze about
> whether a cleanup lock is needed. As is, this patch uses a cleanup
> lock, but I suspect that a regular lock is sufficient --- comments?
Well, according to storage/buffer/README:
1. To scan a page for tuples, one must hold a pin and either shared or
exclusive content lock. To examine the commit status (XIDs and status bits)
of a tuple in a shared buffer, one must likewise hold a pin and either shared
or exclusive lock.
That does indeed make it sound like an x-lock is enough.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company