On Mon, 2013-06-10 at 01:28 -0400, Alvaro Herrera wrote: > Hm, note that XMAX_SHR_LOCK is two bits, so when that flag is present > you will get the three lock modes displayed with the above code, which is > probably going to be misleading. htup_details.h does this: > > /* > * Use these to test whether a particular lock is applied to a tuple > */ > #define HEAP_XMAX_IS_SHR_LOCKED(infomask) \ > (((infomask) & HEAP_LOCK_MASK) == HEAP_XMAX_SHR_LOCK) > #define HEAP_XMAX_IS_EXCL_LOCKED(infomask) \ > (((infomask) & HEAP_LOCK_MASK) == HEAP_XMAX_EXCL_LOCK) > #define HEAP_XMAX_IS_KEYSHR_LOCKED(infomask) \ > (((infomask) & HEAP_LOCK_MASK) == HEAP_XMAX_KEYSHR_LOCK) > > Presumably it'd be better to do something similar.
I was hesitant to do too much interpretation of the bits. Do you think it would be better to just remove the test for XMAX_SHR_LOCK? Regards, Jeff Davis -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers