Bruce Momjian <pgman@candle.pha.pa.us> writes:
> Sailesh Krishnamurthy wrote:
>> Does pgsql only record X locks on the individual tuples on-disk or
>> does it do so for S locks as well ?
> We don't need to shared lock individual rows because of MVCC --- well,
> we sort of do by recording our xid in our proc structure, so folks don't
> change things underneath us. We prevent expired rows from disappearing
> from the disk by others looking at our proc start xid.
This is actually an issue though. Row-level shared locks would be
really nice to have for foreign-key handling. Right now we have to
use X locks for those, and that leads to deadlocking problems for
applications.
regards, tom lane