Erik Jones <mage2k(at)gmail(dot)com> writes:
> I've seen locks with mode of AccessExclusiveLock and locktype of tuple a
> few times now but have never been able to reproduce one nor had a chance to
> dig into them and now have a couple questions on them:
> * When is this kind of heavy lock on a row/tuple taken out? I've done some
> code spelunking but have yet to find anything.
It's a transient state while waiting to acquire a "normal" tuple lock,
that is one recorded in the tuple header. The explanation can be found
in src/backend/access/heap/README.tuplock, and the relevant code is
mostly in heap_lock_tuple().
regards, tom lane