De rijen zijn vergrendeld in de volgorde ORDER BY
clausule zoals het was toen de tabel werd gescand .
De query wordt uitgevoerd en de rijen worden geordend, waarna PostgreSQL de rijen op volgorde vergrendelt. In wezen, ORDER BY
gebeurt vóór FOR UPDATE
.
Nu kan het gebeuren dat het vergrendelen van een rij blokken vanwege vergrendelingen die worden vastgehouden door gelijktijdige transacties. Als dat gebeurt, en we zijn bij de READ COMMITTED
isolatieniveau, PostgreSQL wacht totdat het de vergrendeling kan krijgen en vervolgens de huidige versie ophaalt van de rij, die het vergrendelt.
Als de gelijktijdige transactie de kolommen heeft gewijzigd die de bestelling definiëren, zal het eindresultaat niet in de volgorde zijn die is gedefinieerd door ORDER BY
.