Skip to main content
Journey Uncommon Logo
JourneyUncommon
hardSQLisolation levels and anomaliesSingle-choice MCQ

Under PostgreSQL READ COMMITTED, an UPDATE ... WHERE that has already been blocked by a concurrent transaction's lock on a matching row re-evaluates its WHERE predicate after the blocker commits. This is called an EPOQL ("EvalPlanQual") re-check. What does the re-check operate on?

-- T1 (committed first): UPDATE t SET status='done' WHERE id=5; -- T2 (blocked, then unblocked): UPDATE t SET note='x' WHERE id=5 AND status='open';