=?UTF-8?Q?Toni_C=C3=A1rdenas?= <toni@xxxxxxxxxxxx> writes: > Imagine the same `SELECT ... NOWAIT` statement, which returns rows R1 and > R2, is run from concurrent connections S1 and S2. > 1. S1 obtains and locks R1. > 2. S2 obtains and locks R2. > 3. S1 tries to obtain R2, but it's locked by S2. > 4. S2 tries to obtain R1, but it's locked by S1. > 5. The lock on R1 is released due to S1 failing. > The question is whether step 4 can actually happen between step 3 and 5, or > else steps 3 and 5 are performed atomically with respect to concurrent > selects. I see no reason to think that 3 and 5 would appear to be atomic. regards, tom lane