>> * I observe this even if I crank up the transaction isolation level to repeatable read and serializable. >> >> >> I'm wondering if row locks are not obeying the same transactional semantics as row data, >Gotta believe it is this: > >https://www.postgresql.org/docs/11/transaction-iso.html#XACT-READ-COMMITTED > >"UPDATE, DELETE, SELECT FOR UPDATE, and SELECT FOR SHARE commands ..." > >If I read correctly, transactions can see the effects of other >transactions that commit during their lifetime. Thanks. I had a look at those docs when I first encountered the issue (if it can be called that), which prompted me to try repeatable read and serializable isolation levels, but to no avail. I couldn't find anything specifically mentioning the visibility of row locks at different isolation levels.