id	revision	location	occurrence	kind	text	registry	scope	state_after	support	disposition
C00001	base	docs/postgres/03-locking/deadlocks.md:1	docs/postgres/03-locking/deadlocks.md#heading@1	heading	"# Deadlocks"	P1	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/deadlocks.md#heading@1 (docs/postgres/03-locking/deadlocks.md:1); current scoped support applies
C00002	base	docs/postgres/03-locking/deadlocks.md:3	docs/postgres/03-locking/deadlocks.md#section[# Deadlocks].paragraph@3	lesson-paragraph	"A deadlock is the lock queue's dead end: A waits for B while B waits for A. Neither can ever\nproceed, so PostgreSQL breaks the tie by force: it detects the cycle and kills one of the\ntransactions with SQLSTATE `40P01` (`deadlock_detected`)."	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/deadlocks.md#section[# Deadlocks].paragraph@3; semantic decisions A1-A10 in audit report
C00003	base	docs/postgres/03-locking/deadlocks.md:7	docs/postgres/03-locking/deadlocks.md#heading@7	heading	"## Two transfers, opposite directions"	P1	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/deadlocks.md#heading@5 (docs/postgres/03-locking/deadlocks.md:5); current scoped support applies
C00004	base	docs/postgres/03-locking/deadlocks.md:9	docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@9	lesson-paragraph	"The setup is two money transfers going opposite ways. A grabs alice's row, B grabs bob's row,\nand then each reaches for the row the other is holding. That reach is the cycle."	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@7; docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@9; docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@11; semantic decisions A1-A10 in audit report
C00005	base	docs/postgres/03-locking/deadlocks.md:12	docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@12	lesson-paragraph	"```timeline\nSession A: UPDATE alice (id=1) → holds alice\nSession B: UPDATE bob (id=2) → holds bob\nSession A: UPDATE bob (id=2) → ⏳ waits for B\nSession B: UPDATE alice (id=1) → ✋ 40P01 — the cycle is detected, B is aborted\nSession A: ⏵ UPDATE bob → completes, then COMMIT\n```"	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@7; docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@9; docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@11; semantic decisions A1-A10 in audit report
C00006	base	docs/postgres/03-locking/deadlocks.md:20	docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@20	lesson-paragraph	"<!--@include: ./parts/deadlock.md-->"	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@9 (docs/postgres/03-locking/deadlocks.md:9); current scoped support applies
C00007	base	docs/postgres/03-locking/deadlocks.md:22	docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@22	lesson-paragraph	"How the detection works: a backend that has been waiting for `deadlock_timeout` (default\n1 s) checks whether its wait is part of a cycle, and if so, aborts itself. Two consequences are\nworth internalizing. The first is that deadlocks cost latency before they cost errors: every\none burns at least `deadlock_timeout` of pure waiting before anything is aborted. The second is\nthat the victim is effectively arbitrary: whoever's timer fires first while the cycle exists is\nthe one that dies. The transcript above is only reproducible because we pinned the timers; the\nmanual itself says which transaction gets aborted is\n[\"difficult to predict and should not be relied upon\"](https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-DEADLOCKS).\nWrite code that survives *either* transaction being the victim."	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@7; docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@9; docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@11; semantic decisions A1-A10 in audit report
C00008	base	docs/postgres/03-locking/deadlocks.md:32	docs/postgres/03-locking/deadlocks.md#heading@32	heading	"## The cure: lock in a consistent order"	P1	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/deadlocks.md#heading@13 (docs/postgres/03-locking/deadlocks.md:13); current scoped support applies
C00009	base	docs/postgres/03-locking/deadlocks.md:34	docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@34	lesson-paragraph	"Deadlocks need a cycle, and a cycle needs disagreement about order. Remove the disagreement and\nthe deadlock isn't \"less likely,\" it's gone entirely:"	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@15; docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@17; docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@19; docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@21; semantic decisions A1-A10 in audit report
C00010	base	docs/postgres/03-locking/deadlocks.md:37	docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@37	lesson-paragraph	"<!--@include: ./parts/deadlock-avoidance.md-->"	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@17 (docs/postgres/03-locking/deadlocks.md:17); current scoped support applies
C00011	base	docs/postgres/03-locking/deadlocks.md:39	docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@39	lesson-paragraph	"`40P01` is retryable, exactly like the `40001` you met under serializable conflicts: roll back\nand retry the whole transaction. The other transaction finished fine, so your data is\nconsistent, nothing to clean up; run yours again."	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@15; docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@17; docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@19; docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@21; semantic decisions A1-A10 in audit report
C00012	base	docs/postgres/03-locking/deadlocks.md:43	docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@43	lesson-paragraph	"The real fix, though, isn't retrying faster; it's never forming the cycle. That means\nconsistent lock ordering, in the manual's own words: [\"the best defense against deadlocks is\ngenerally to avoid them by being certain that all applications using a database acquire locks\non multiple objects in a consistent order\"](https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-DEADLOCKS).\nSort by primary key before `FOR UPDATE`, always update account pairs in id order, take the\n\"parent\" lock before the \"child\": one convention, zero deadlocks. Locking everything up front\nwith `SELECT ... WHERE id IN (…) ORDER BY id FOR UPDATE` turns a potential deadlock into a plain\nqueue wait."	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@15; docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@17; docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@19; docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@21; semantic decisions A1-A10 in audit report
C00013	base	docs/postgres/03-locking/deadlocks.md:52	docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@52	lesson-paragraph	"One last thing to watch for: because `deadlock_timeout` is a full second, deadlock-prone code\nshows up as latency spikes long before you notice the errors. Frequent `40P01` in the logs is a\ndesign smell, not bad luck. The [monitoring lesson](/postgres/03-locking/monitoring-locks) shows\nhow to catch the wait before the timer fires."	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@15; docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@17; docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@19; docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@21; semantic decisions A1-A10 in audit report
C00014	base	docs/postgres/03-locking/deadlocks.md:57	docs/postgres/03-locking/deadlocks.md#heading@57	heading	"## Further reading"	P1	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/deadlocks.md#heading@23 (docs/postgres/03-locking/deadlocks.md:23); current scoped support applies
C00015	base	docs/postgres/03-locking/deadlocks.md:59	docs/postgres/03-locking/deadlocks.md#section[## Further reading].paragraph@59	lesson-paragraph	"- [PostgreSQL docs: Deadlocks](https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-DEADLOCKS)\n- [PostgreSQL docs: `deadlock_timeout`](https://www.postgresql.org/docs/current/runtime-config-locks.html#GUC-DEADLOCK-TIMEOUT)\n- [The same lesson on MySQL](/mysql/03-locking/deadlocks)"	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/deadlocks.md#section[## Further reading].paragraph@25; semantic decisions A1-A10 in audit report
C00016	current	docs/postgres/03-locking/deadlocks.md:1	docs/postgres/03-locking/deadlocks.md#heading@1	heading	"# Deadlocks"	P1	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00017	current	docs/postgres/03-locking/deadlocks.md:3	docs/postgres/03-locking/deadlocks.md#section[# Deadlocks].paragraph@3	lesson-paragraph	"A lock deadlock is a cycle of conflicting requests: A waits for B while B waits for A. PostgreSQL 18 [detects such cycles and aborts one transaction](https://www.postgresql.org/docs/18/explicit-locking.html#LOCKING-DEADLOCKS), reporting `40P01`. Do not depend on which transaction becomes the victim."	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00018	current	docs/postgres/03-locking/deadlocks.md:5	docs/postgres/03-locking/deadlocks.md#heading@5	heading	"## Two transfers, opposite directions"	P1	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00019	current	docs/postgres/03-locking/deadlocks.md:7	docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@7	lesson-paragraph	"A locks alice's row and B locks bob's. Each then updates the other's row. This schedule sets A's `deadlock_timeout` to 10 seconds and B's to 50 milliseconds to make B the observed victim:"	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00020	current	docs/postgres/03-locking/deadlocks.md:9	docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@9	lesson-paragraph	"<!--@include: ./parts/deadlock.md-->"	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00021	current	docs/postgres/03-locking/deadlocks.md:11	docs/postgres/03-locking/deadlocks.md#section[## Two transfers, opposite directions].paragraph@11	lesson-paragraph	"[`deadlock_timeout`](https://www.postgresql.org/docs/18/runtime-config-locks.html#GUC-DEADLOCK-TIMEOUT) controls how long a backend waits on a lock before checking for a deadlock, not a guaranteed minimum duration for every cycle. Its default is one second; the demonstration overrides it. Detection and scheduling latency are not benchmarked here."	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00022	current	docs/postgres/03-locking/deadlocks.md:13	docs/postgres/03-locking/deadlocks.md#heading@13	heading	"## The cure: lock in a consistent order"	P1	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00023	current	docs/postgres/03-locking/deadlocks.md:15	docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@15	lesson-paragraph	"In this second schedule both transfers lock rows 1 and 2 in id order before changing either balance. B waits for A and then both transfers commit:"	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00024	current	docs/postgres/03-locking/deadlocks.md:17	docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@17	lesson-paragraph	"<!--@include: ./parts/deadlock-avoidance.md-->"	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00025	current	docs/postgres/03-locking/deadlocks.md:19	docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@19	lesson-paragraph	"† For this two-row workload, if every participant takes its strongest required row locks in the same order and holds no other conflicting resources, the opposite-order cycle cannot form: a waiter on row 1 cannot already hold row 2 against the holder of row 1. This is an Entailed guarantee from the [locking contract](https://www.postgresql.org/docs/18/explicit-locking.html#LOCKING-DEADLOCKS), not a proof of all possible schedules. Other tables, triggers, foreign-key checks, or lock upgrades can introduce other cycles."	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		E: explicitly marked inference; derivation and limits in this paragraph and lesson	Resolved: scoped current E: explicitly marked inference; derivation and limits in this paragraph and lesson
C00026	current	docs/postgres/03-locking/deadlocks.md:21	docs/postgres/03-locking/deadlocks.md#section[## The cure: lock in a consistent order].paragraph@21	lesson-paragraph	"After `40P01`, roll back and, where the application permits it, retry the whole transaction with fresh decisions. The demonstrated victim's database changes do not commit. External effects and eventual retry success are not established. The [monitoring lesson](/postgres/03-locking/monitoring-locks) shows how to inspect waits."	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00027	current	docs/postgres/03-locking/deadlocks.md:23	docs/postgres/03-locking/deadlocks.md#heading@23	heading	"## Further reading"	P1	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00028	current	docs/postgres/03-locking/deadlocks.md:25	docs/postgres/03-locking/deadlocks.md#section[## Further reading].paragraph@25	lesson-paragraph	"- [PostgreSQL 18: Deadlocks](https://www.postgresql.org/docs/18/explicit-locking.html#LOCKING-DEADLOCKS)\n- [PostgreSQL 18: deadlock_timeout](https://www.postgresql.org/docs/18/runtime-config-locks.html#GUC-DEADLOCK-TIMEOUT)\n- [The same lesson on MySQL](/mysql/03-locking/deadlocks)"	P1	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00029	base	docs/postgres/03-locking/lock-queues.md:1	docs/postgres/03-locking/lock-queues.md#heading@1	heading	"# Lock queues"	P2	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/lock-queues.md#heading@1 (docs/postgres/03-locking/lock-queues.md:1); current scoped support applies
C00030	base	docs/postgres/03-locking/lock-queues.md:3	docs/postgres/03-locking/lock-queues.md#section[# Lock queues].paragraph@3	lesson-paragraph	"A lock that's taken is only half the story. The other half is the queue that forms behind it,\nbecause that queue, not the lock itself, is what turns one slow transaction into a site-wide\nincident. You'll see the extreme version in [DDL outages](/postgres/03-locking/table-locks-and-ddl);\nhere's the mechanism on a single hot row."	P2	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/lock-queues.md#section[# Lock queues].paragraph@3; semantic decisions A1-A10 in audit report
C00031	base	docs/postgres/03-locking/lock-queues.md:8	docs/postgres/03-locking/lock-queues.md#heading@8	heading	"## First come, first locked"	P2	Baseline overbroad short claim; its original text is retained as audit history, not accepted support		Unsupported as stated; replacement is limited to the observed schedule and assertions identified by C00042	Narrowed at docs/postgres/03-locking/lock-queues.md#heading@7 (docs/postgres/03-locking/lock-queues.md:7); C00042 records exact replacement text and support; no general exclusivity, fairness or all-work maintenance guarantee
C00032	base	docs/postgres/03-locking/lock-queues.md:10	docs/postgres/03-locking/lock-queues.md#section[## First come, first locked].paragraph@10	lesson-paragraph	"<!--@include: ./parts/lock-queue-fifo.md-->"	P2	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/03-locking/lock-queues.md#section[## Observed order: B completes before C].paragraph@9 (docs/postgres/03-locking/lock-queues.md:9); current scoped support applies
C00033	base	docs/postgres/03-locking/lock-queues.md:12	docs/postgres/03-locking/lock-queues.md#heading@12	heading	"## Reading the transcript"	P2	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/lock-queues.md#heading@11 (docs/postgres/03-locking/lock-queues.md:11); current scoped support applies
C00034	base	docs/postgres/03-locking/lock-queues.md:14	docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@14	lesson-paragraph	"Two details in `M`'s output are worth a second look."	P2	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@13; docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@15; semantic decisions A1-A10 in audit report
C00035	base	docs/postgres/03-locking/lock-queues.md:16	docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@16	lesson-paragraph	"The first: `C` waits on `B`, not on `A`. When `B` joined the queue it claimed a *tuple lock* (its ticket for first place in line) and only then settled in to wait for A's transaction to\nend. Everyone who arrives after `B` queues on that tuple lock, so the wait relationships form a\nchain, not a star. To find the transaction that's actually holding things up you may have to\nwalk several hops (the [monitoring lesson](/postgres/03-locking/monitoring-locks) has the query)."	P2	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@13; docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@15; semantic decisions A1-A10 in audit report
C00036	base	docs/postgres/03-locking/lock-queues.md:21	docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@21	lesson-paragraph	"The second: `pg_blocking_pids()` does the hard walk for you. It answers \"who is this backend\nwaiting for?\" directly, including sessions that merely wait ahead in the queue rather than\nholding a conflicting lock outright. The manual calls those\n[soft blocks](https://www.postgresql.org/docs/current/functions-info.html#FUNCTIONS-INFO-SESSION).\nNo manual `pg_locks` archaeology required."	P2	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@13; docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@15; semantic decisions A1-A10 in audit report
C00037	base	docs/postgres/03-locking/lock-queues.md:27	docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@27	lesson-paragraph	"The rule underneath all of this is arrival order. When a row lock is released it goes to the\nhead of the queue, and everyone else keeps waiting behind the new holder. That's why queue time\ncompounds: three 100 ms transactions serialized on one row take 300 ms, and a genuinely hot row\n(a counter, an account balance, a \"singleton\" config row) is a throughput ceiling by design.\nWhen you need to see a pile-up as it happens, `pg_stat_activity.wait_event_type = 'Lock'` paired\nwith `pg_blocking_pids()` is the fastest look, which is exactly where the\n[monitoring lesson](/postgres/03-locking/monitoring-locks) picks up."	P2	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@13; docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@15; semantic decisions A1-A10 in audit report
C00038	base	docs/postgres/03-locking/lock-queues.md:35	docs/postgres/03-locking/lock-queues.md#heading@35	heading	"## Further reading"	P2	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/lock-queues.md#heading@17 (docs/postgres/03-locking/lock-queues.md:17); current scoped support applies
C00039	base	docs/postgres/03-locking/lock-queues.md:37	docs/postgres/03-locking/lock-queues.md#section[## Further reading].paragraph@37	lesson-paragraph	"- [PostgreSQL docs: Explicit Locking](https://www.postgresql.org/docs/current/explicit-locking.html)\n- [PostgreSQL docs: `pg_blocking_pids()`](https://www.postgresql.org/docs/current/functions-info.html#FUNCTIONS-INFO-SESSION)\n- [The same lesson on MySQL](/mysql/03-locking/lock-queues)"	P2	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/lock-queues.md#section[## Further reading].paragraph@19; semantic decisions A1-A10 in audit report
C00040	current	docs/postgres/03-locking/lock-queues.md:1	docs/postgres/03-locking/lock-queues.md#heading@1	heading	"# Lock queues"	P2	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00041	current	docs/postgres/03-locking/lock-queues.md:3	docs/postgres/03-locking/lock-queues.md#section[# Lock queues].paragraph@3	lesson-paragraph	"Waiting requests can block later requests as well as requests held outright. This schedule follows three updates of one row and observes B completing before C. It does not establish universal FIFO fairness or a throughput bound."	P2	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00042	current	docs/postgres/03-locking/lock-queues.md:7	docs/postgres/03-locking/lock-queues.md#heading@7	heading	"## Observed order: B completes before C"	P2	PostgreSQL 18.6; observed B-before-C completion in this single-row schedule, not universal FIFO fairness		D: scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[9].success, #steps[10].locked, #steps[11].expect, #steps[13].success and #steps[14].expect	Resolved: narrowed short claim to the explicitly supported observation; legacy fragment retained only as a non-visible anchor ID
C00043	current	docs/postgres/03-locking/lock-queues.md:9	docs/postgres/03-locking/lock-queues.md#section[## Observed order: B completes before C].paragraph@9	lesson-paragraph	"<!--@include: ./parts/lock-queue-fifo.md-->"	P2	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00044	current	docs/postgres/03-locking/lock-queues.md:11	docs/postgres/03-locking/lock-queues.md#heading@11	heading	"## Reading the transcript"	P2	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00045	current	docs/postgres/03-locking/lock-queues.md:13	docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@13	lesson-paragraph	"M first observes B and C waiting. After A commits, B's update completes; the runner waits until C is again observed waiting, and M sees C as the remaining waiter. After B commits, C finishes and the asserted balance is 211. The initial observation asserts waiter names, not the contents of `blocked_by`; it does not independently assert the initial B-to-A and C-to-B edges."	P2	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00046	current	docs/postgres/03-locking/lock-queues.md:15	docs/postgres/03-locking/lock-queues.md#section[## Reading the transcript].paragraph@15	lesson-paragraph	"[`pg_blocking_pids()`](https://www.postgresql.org/docs/18/functions-info.html#FUNCTIONS-INFO-SESSION) reports immediate hard blockers (conflicting locks held) and soft blockers (conflicting requests ahead in the queue). It does not recursively return every ancestor. Walk the returned relationships to find the root of a longer chain. The [monitoring lesson](/postgres/03-locking/monitoring-locks) explains a direct-edge query; the [DDL lesson](/postgres/03-locking/table-locks-and-ddl) asserts a two-edge chain."	P2	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00047	current	docs/postgres/03-locking/lock-queues.md:17	docs/postgres/03-locking/lock-queues.md#heading@17	heading	"## Further reading"	P2	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00048	current	docs/postgres/03-locking/lock-queues.md:19	docs/postgres/03-locking/lock-queues.md#section[## Further reading].paragraph@19	lesson-paragraph	"- [PostgreSQL 18: Explicit Locking](https://www.postgresql.org/docs/18/explicit-locking.html)\n- [PostgreSQL 18: pg_blocking_pids()](https://www.postgresql.org/docs/18/functions-info.html#FUNCTIONS-INFO-SESSION)\n- [The same lesson on MySQL](/mysql/03-locking/lock-queues)"	P2	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00049	base	docs/postgres/03-locking/monitoring-locks.md:1	docs/postgres/03-locking/monitoring-locks.md#heading@1	heading	"# Monitoring locks"	P3	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/monitoring-locks.md#heading@1 (docs/postgres/03-locking/monitoring-locks.md:1); current scoped support applies
C00050	base	docs/postgres/03-locking/monitoring-locks.md:3	docs/postgres/03-locking/monitoring-locks.md#section[# Monitoring locks].paragraph@3	lesson-paragraph	"Everything this chapter demonstrated, you can watch live in two views: `pg_locks` (every lock\nheld or wanted, right now) and `pg_stat_activity` (what every backend is doing). This lesson is\nthe guided tour; the production runbook chapter builds alerting on top of it."	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/monitoring-locks.md#section[# Monitoring locks].paragraph@3; semantic decisions A1-A10 in audit report
C00051	base	docs/postgres/03-locking/monitoring-locks.md:7	docs/postgres/03-locking/monitoring-locks.md#heading@7	heading	"## What one UPDATE really holds"	P3	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/monitoring-locks.md#heading@5 (docs/postgres/03-locking/monitoring-locks.md:5); current scoped support applies
C00052	base	docs/postgres/03-locking/monitoring-locks.md:9	docs/postgres/03-locking/monitoring-locks.md#section[## What one UPDATE really holds].paragraph@9	lesson-paragraph	"<!--@include: ./parts/monitoring-locks.md-->"	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/03-locking/monitoring-locks.md#section[## What one UPDATE really holds].paragraph@7 (docs/postgres/03-locking/monitoring-locks.md:7); current scoped support applies
C00053	base	docs/postgres/03-locking/monitoring-locks.md:11	docs/postgres/03-locking/monitoring-locks.md#section[## What one UPDATE really holds].paragraph@11	lesson-paragraph	"Four rows for one little UPDATE, and each earns its place. The two `relation` /\n`RowExclusiveLock` entries (one on the table, one on its index) are the \"I am writing to this\ntable\" locks; they conflict with DDL, not with other writers. The `transactionid` /\n`ExclusiveLock` is the hook the whole row-wait mechanism hangs on: every transaction holds an\nexclusive lock on its own transaction id, and waiting for a row really means\n[requesting a share lock on the xid that wrote it](https://www.postgresql.org/docs/current/view-pg-locks.html),\nwhich succeeds \"only when the other transaction terminates\". The `virtualxid` entry is the same\nidea for transactions that haven't written anything yet."	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/monitoring-locks.md#section[## What one UPDATE really holds].paragraph@7; docs/postgres/03-locking/monitoring-locks.md#section[## What one UPDATE really holds].paragraph@9; docs/postgres/03-locking/monitoring-locks.md#section[## What one UPDATE really holds].paragraph@11; semantic decisions A1-A10 in audit report
C00054	base	docs/postgres/03-locking/monitoring-locks.md:20	docs/postgres/03-locking/monitoring-locks.md#section[## What one UPDATE really holds].paragraph@20	lesson-paragraph	"Notice what's *missing*: the locked row itself. Row locks live in the row header on disk (you'll\nwatch `xmax` do this job in the MVCC chapter), not in `pg_locks`, otherwise memory would cap\nhow many rows you could lock."	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/monitoring-locks.md#section[## What one UPDATE really holds].paragraph@7; docs/postgres/03-locking/monitoring-locks.md#section[## What one UPDATE really holds].paragraph@9; docs/postgres/03-locking/monitoring-locks.md#section[## What one UPDATE really holds].paragraph@11; semantic decisions A1-A10 in audit report
C00055	base	docs/postgres/03-locking/monitoring-locks.md:24	docs/postgres/03-locking/monitoring-locks.md#heading@24	heading	"## Finding the blocker"	P3	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/monitoring-locks.md#heading@13 (docs/postgres/03-locking/monitoring-locks.md:13); current scoped support applies
C00056	base	docs/postgres/03-locking/monitoring-locks.md:26	docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@26	lesson-paragraph	"The one query worth memorizing (or bookmarking) is the wait chain:"	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@15; docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@17; docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@28; semantic decisions A1-A10 in audit report
C00057	base	docs/postgres/03-locking/monitoring-locks.md:28	docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@28	lesson-paragraph	"```sql\nSELECT waiter.pid  AS waiting_pid,\n       waiter.query AS waiting_query,\n       blocker.pid  AS blocking_pid,\n       blocker.state AS blocker_state,\n       blocker.query AS blocker_query\nFROM pg_stat_activity waiter\nJOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\nWHERE waiter.wait_event_type = 'Lock';\n```"	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@15; docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@17; docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@28; semantic decisions A1-A10 in audit report
C00058	base	docs/postgres/03-locking/monitoring-locks.md:39	docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@39	lesson-paragraph	"`blocker_state` is the column that solves incidents. A blocker that's `active` is slow; a\nblocker that's `idle in transaction` is stuck: an app that did `BEGIN`, made changes, and\nwandered off to do something else. That second kind never resolves on its own."	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@15; docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@17; docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@28; semantic decisions A1-A10 in audit report
C00059	base	docs/postgres/03-locking/monitoring-locks.md:43	docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@43	lesson-paragraph	"It helps to see that the two views are describing one fact from two angles: a waiter is a\n`pg_locks` row with `granted = f`, and the same waiter is a `pg_stat_activity` row with\n`wait_event_type = 'Lock'`. You could join `pg_locks` to itself by hand to find the culprit, but\n`pg_blocking_pids(pid)` already understands lock queues, including blockers that are merely\nahead in line, so it saves you the archaeology. Pair it with `blocker_state` and you've answered\nthe only question that matters mid-incident: is the blocker slow, or is it stuck?\n[Chapter 8 turns this into a runbook](/postgres/08-production/who-is-blocking-whom), down to what\nto do once you've found the culprit."	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@15; docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@17; docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@28; semantic decisions A1-A10 in audit report
C00060	base	docs/postgres/03-locking/monitoring-locks.md:52	docs/postgres/03-locking/monitoring-locks.md#heading@52	heading	"## Further reading"	P3	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/monitoring-locks.md#heading@30 (docs/postgres/03-locking/monitoring-locks.md:30); current scoped support applies
C00061	base	docs/postgres/03-locking/monitoring-locks.md:54	docs/postgres/03-locking/monitoring-locks.md#section[## Further reading].paragraph@54	lesson-paragraph	"- [PostgreSQL docs: The `pg_locks` view](https://www.postgresql.org/docs/current/view-pg-locks.html)\n- [PostgreSQL docs: `pg_stat_activity`](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW)\n- [The same lesson on MySQL](/mysql/03-locking/monitoring-locks)"	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/monitoring-locks.md#section[## Further reading].paragraph@32; semantic decisions A1-A10 in audit report
C00062	current	docs/postgres/03-locking/monitoring-locks.md:1	docs/postgres/03-locking/monitoring-locks.md#heading@1	heading	"# Monitoring locks"	P3	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00063	current	docs/postgres/03-locking/monitoring-locks.md:3	docs/postgres/03-locking/monitoring-locks.md#section[# Monitoring locks].paragraph@3	lesson-paragraph	"PostgreSQL 18's [`pg_locks`](https://www.postgresql.org/docs/18/view-pg-locks.html) exposes held and requested lock-manager locks. [`pg_stat_activity`](https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW) supplies session state and wait events. Ordinary row locks are stored on disk and normally do not appear directly in `pg_locks`."	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00064	current	docs/postgres/03-locking/monitoring-locks.md:5	docs/postgres/03-locking/monitoring-locks.md#heading@5	heading	"## What one UPDATE really holds"	P3	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00065	current	docs/postgres/03-locking/monitoring-locks.md:7	docs/postgres/03-locking/monitoring-locks.md#section[## What one UPDATE really holds].paragraph@7	lesson-paragraph	"<!--@include: ./parts/monitoring-locks.md-->"	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00066	current	docs/postgres/03-locking/monitoring-locks.md:9	docs/postgres/03-locking/monitoring-locks.md#section[## What one UPDATE really holds].paragraph@9	lesson-paragraph	"The assertion checks four entries for this single-row UPDATE on this table and primary index: two `RowExclusiveLock` relation locks, its assigned transaction-id `ExclusiveLock`, and its virtual-transaction-id `ExclusiveLock`. This is not a universal lock count for an UPDATE. The table mode conflicts with some stronger table modes, not with another `RowExclusiveLock`."	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00067	current	docs/postgres/03-locking/monitoring-locks.md:11	docs/postgres/03-locking/monitoring-locks.md#section[## What one UPDATE really holds].paragraph@11	lesson-paragraph	"B's row wait appears as an ungranted `ShareLock` on a transaction id. The [view contract](https://www.postgresql.org/docs/18/view-pg-locks.html) explains why: a request to wait for a transaction to end can wait on its xid lock. Every running transaction holds its virtual xid lock; an assigned permanent xid adds another lock. Tuple lock-manager entries can also appear, so absence of the ordinary on-disk row lock does not mean there can never be a `tuple` entry."	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00068	current	docs/postgres/03-locking/monitoring-locks.md:13	docs/postgres/03-locking/monitoring-locks.md#heading@13	heading	"## Finding the blocker"	P3	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00069	current	docs/postgres/03-locking/monitoring-locks.md:15	docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@15	lesson-paragraph	"The demonstrated monitoring query asserts B-to-A. Its pid/query variant below is illustrative, not another executed schedule:"	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00070	current	docs/postgres/03-locking/monitoring-locks.md:17	docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@17	lesson-paragraph	"```sql\nSELECT waiter.pid AS waiting_pid,\n       waiter.query AS waiting_query,\n       blocker.pid AS blocking_pid,\n       blocker.state AS blocker_state,\n       blocker.query AS blocker_query\nFROM pg_stat_activity waiter\nJOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\nWHERE waiter.wait_event_type = 'Lock';\n```"	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00071	current	docs/postgres/03-locking/monitoring-locks.md:28	docs/postgres/03-locking/monitoring-locks.md#section[## Finding the blocker].paragraph@28	lesson-paragraph	"`active` means executing a query; it does not prove slow progress. `idle in transaction` means waiting for a client command inside a transaction; it does not prove the client will never continue. Use transaction age and application context to decide what to do. Visibility of other sessions' details depends on monitoring privileges. These live views are not one fully atomic history of the server. [Chapter 8](/postgres/08-production/who-is-blocking-whom) provides operational follow-up."	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00072	current	docs/postgres/03-locking/monitoring-locks.md:30	docs/postgres/03-locking/monitoring-locks.md#heading@30	heading	"## Further reading"	P3	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00073	current	docs/postgres/03-locking/monitoring-locks.md:32	docs/postgres/03-locking/monitoring-locks.md#section[## Further reading].paragraph@32	lesson-paragraph	"- [PostgreSQL 18: pg_locks](https://www.postgresql.org/docs/18/view-pg-locks.html)\n- [PostgreSQL 18: pg_stat_activity](https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW)\n- [The same lesson on MySQL](/mysql/03-locking/monitoring-locks)"	P3	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00074	base	docs/postgres/03-locking/nowait-skip-locked.md:1	docs/postgres/03-locking/nowait-skip-locked.md#heading@1	heading	"# NOWAIT, lock_timeout, SKIP LOCKED"	P4	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/nowait-skip-locked.md#heading@1 (docs/postgres/03-locking/nowait-skip-locked.md:1); current scoped support applies
C00075	base	docs/postgres/03-locking/nowait-skip-locked.md:3	docs/postgres/03-locking/nowait-skip-locked.md#section[# NOWAIT, lock_timeout, SKIP LOCKED].paragraph@3	lesson-paragraph	"Waiting in the [lock queue](/postgres/03-locking/lock-queues) is the default, not the law.\nPostgreSQL gives you three ways out, and they answer three different questions:"	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/nowait-skip-locked.md#section[# NOWAIT, lock_timeout, SKIP LOCKED].paragraph@3; semantic decisions A1-A10 in audit report
C00076	base	docs/postgres/03-locking/nowait-skip-locked.md:6	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[Escape hatch].column[Escape hatch]	table-cell	"Escape hatch"	P4	PostgreSQL 18; row subject Escape hatch; column Escape hatch; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[Escape hatch].column[Escape hatch] (docs/postgres/03-locking/nowait-skip-locked.md:5); current scoped support applies
C00077	base	docs/postgres/03-locking/nowait-skip-locked.md:6	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[Escape hatch].column[The question it answers]	table-cell	"The question it answers"	P4	PostgreSQL 18; row subject Escape hatch; column The question it answers; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[Escape hatch].column[The question it answers] (docs/postgres/03-locking/nowait-skip-locked.md:5); current scoped support applies
C00078	base	docs/postgres/03-locking/nowait-skip-locked.md:8	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`NOWAIT`].column[Escape hatch]	table-cell	"`NOWAIT`"	P4	PostgreSQL 18; row subject `NOWAIT`; column Escape hatch; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`NOWAIT`].column[Escape hatch] (docs/postgres/03-locking/nowait-skip-locked.md:7); current scoped support applies
C00079	base	docs/postgres/03-locking/nowait-skip-locked.md:8	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`NOWAIT`].column[The question it answers]	table-cell	"\"Is it free *right now*? If not, I'll do something else.\""	P4	PostgreSQL 18; row subject `NOWAIT`; column The question it answers; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Superseded/removed; exact current correspondences: docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[Escape hatch].column[Escape hatch]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[Escape hatch].column[The question it answers]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`NOWAIT`].column[Escape hatch]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`NOWAIT`].column[The question it answers]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`lock_timeout`].column[Escape hatch]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`lock_timeout`].column[The question it answers]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`SKIP LOCKED`].column[Escape hatch]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`SKIP LOCKED`].column[The question it answers]; semantic decisions A1-A10 in audit report
C00080	base	docs/postgres/03-locking/nowait-skip-locked.md:9	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`lock_timeout`].column[Escape hatch]	table-cell	"`lock_timeout`"	P4	PostgreSQL 18; row subject `lock_timeout`; column Escape hatch; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`lock_timeout`].column[Escape hatch] (docs/postgres/03-locking/nowait-skip-locked.md:8); current scoped support applies
C00081	base	docs/postgres/03-locking/nowait-skip-locked.md:9	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`lock_timeout`].column[The question it answers]	table-cell	"\"I'll wait a little, but I refuse to wait forever.\""	P4	PostgreSQL 18; row subject `lock_timeout`; column The question it answers; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Superseded/removed; exact current correspondences: docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[Escape hatch].column[Escape hatch]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[Escape hatch].column[The question it answers]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`NOWAIT`].column[Escape hatch]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`NOWAIT`].column[The question it answers]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`lock_timeout`].column[Escape hatch]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`lock_timeout`].column[The question it answers]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`SKIP LOCKED`].column[Escape hatch]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`SKIP LOCKED`].column[The question it answers]; semantic decisions A1-A10 in audit report
C00082	base	docs/postgres/03-locking/nowait-skip-locked.md:10	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`SKIP LOCKED`].column[Escape hatch]	table-cell	"`SKIP LOCKED`"	P4	PostgreSQL 18; row subject `SKIP LOCKED`; column Escape hatch; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`SKIP LOCKED`].column[Escape hatch] (docs/postgres/03-locking/nowait-skip-locked.md:9); current scoped support applies
C00083	base	docs/postgres/03-locking/nowait-skip-locked.md:10	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`SKIP LOCKED`].column[The question it answers]	table-cell	"\"Give me *any* free row; pretend the locked ones don't exist.\""	P4	PostgreSQL 18; row subject `SKIP LOCKED`; column The question it answers; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Superseded/removed; exact current correspondences: docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[Escape hatch].column[Escape hatch]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[Escape hatch].column[The question it answers]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`NOWAIT`].column[Escape hatch]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`NOWAIT`].column[The question it answers]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`lock_timeout`].column[Escape hatch]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`lock_timeout`].column[The question it answers]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`SKIP LOCKED`].column[Escape hatch]; docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`SKIP LOCKED`].column[The question it answers]; semantic decisions A1-A10 in audit report
C00084	base	docs/postgres/03-locking/nowait-skip-locked.md:12	docs/postgres/03-locking/nowait-skip-locked.md#heading@12	heading	"## NOWAIT: fail fast"	P4	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/nowait-skip-locked.md#heading@11 (docs/postgres/03-locking/nowait-skip-locked.md:11); current scoped support applies
C00085	base	docs/postgres/03-locking/nowait-skip-locked.md:14	docs/postgres/03-locking/nowait-skip-locked.md#section[## NOWAIT: fail fast].paragraph@14	lesson-paragraph	"<!--@include: ./parts/nowait.md-->"	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/03-locking/nowait-skip-locked.md#section[## NOWAIT: fail fast].paragraph@13 (docs/postgres/03-locking/nowait-skip-locked.md:13); current scoped support applies
C00086	base	docs/postgres/03-locking/nowait-skip-locked.md:16	docs/postgres/03-locking/nowait-skip-locked.md#heading@16	heading	"## lock_timeout: bounded patience"	P4	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/nowait-skip-locked.md#heading@15 (docs/postgres/03-locking/nowait-skip-locked.md:15); current scoped support applies
C00087	base	docs/postgres/03-locking/nowait-skip-locked.md:18	docs/postgres/03-locking/nowait-skip-locked.md#section[## lock_timeout: bounded patience].paragraph@18	lesson-paragraph	"<!--@include: ./parts/lock-timeout.md-->"	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/03-locking/nowait-skip-locked.md#section[## lock_timeout: bounded patience].paragraph@17 (docs/postgres/03-locking/nowait-skip-locked.md:17); current scoped support applies
C00088	base	docs/postgres/03-locking/nowait-skip-locked.md:20	docs/postgres/03-locking/nowait-skip-locked.md#heading@20	heading	"## SKIP LOCKED: the job-queue primitive"	P4	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/nowait-skip-locked.md#heading@21 (docs/postgres/03-locking/nowait-skip-locked.md:21); current scoped support applies
C00089	base	docs/postgres/03-locking/nowait-skip-locked.md:22	docs/postgres/03-locking/nowait-skip-locked.md#section[## SKIP LOCKED: the job-queue primitive].paragraph@22	lesson-paragraph	"<!--@include: ./parts/skip-locked.md-->"	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/03-locking/nowait-skip-locked.md#section[## SKIP LOCKED: the job-queue primitive].paragraph@23 (docs/postgres/03-locking/nowait-skip-locked.md:23); current scoped support applies
C00090	base	docs/postgres/03-locking/nowait-skip-locked.md:24	docs/postgres/03-locking/nowait-skip-locked.md#section[## SKIP LOCKED: the job-queue primitive].paragraph@24	lesson-paragraph	"All three of these speak the same SQLSTATE, `55P03` (`lock_not_available`): `NOWAIT` raises it\nthe instant the row is taken, `lock_timeout` raises it once your patience runs out. Handle it the\nway you'd handle a `40001` serialization failure: back off and retry. `lock_timeout` in\nparticular applies\n[separately to each lock the statement tries to acquire](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-LOCK-TIMEOUT),\nwhich is what makes it the seatbelt every [migration](/postgres/03-locking/table-locks-and-ddl)\nshould wear."	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/nowait-skip-locked.md#section[## SKIP LOCKED: the job-queue primitive].paragraph@23; docs/postgres/03-locking/nowait-skip-locked.md#section[## SKIP LOCKED: the job-queue primitive].paragraph@25; docs/postgres/03-locking/nowait-skip-locked.md#section[## SKIP LOCKED: the job-queue primitive].paragraph@27; semantic decisions A1-A10 in audit report
C00091	base	docs/postgres/03-locking/nowait-skip-locked.md:32	docs/postgres/03-locking/nowait-skip-locked.md#section[## SKIP LOCKED: the job-queue primitive].paragraph@32	lesson-paragraph	"`SKIP LOCKED` is the odd one out, because it doesn't fail at all: it lies by omission. The\nmanual is upfront that this is deliberate: \"Skipping locked rows provides an inconsistent view of\nthe data, so this is not suitable for general purpose work, but can be used to avoid lock\ncontention with multiple consumers accessing a queue-like table.\"\n([SELECT: The Locking Clause](https://www.postgresql.org/docs/current/sql-select.html#SQL-FOR-UPDATE-SHARE).)\nThat inconsistency is exactly what a job queue wants: each worker grabs a different free row and\nnever blocks, and a worker that rolls back puts its row straight back for the next taker, so you\nget crash safety for free. The patterns chapter builds a [full worker queue](/postgres/05-patterns/job-queue)\non precisely this."	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/nowait-skip-locked.md#section[## SKIP LOCKED: the job-queue primitive].paragraph@23; docs/postgres/03-locking/nowait-skip-locked.md#section[## SKIP LOCKED: the job-queue primitive].paragraph@25; docs/postgres/03-locking/nowait-skip-locked.md#section[## SKIP LOCKED: the job-queue primitive].paragraph@27; semantic decisions A1-A10 in audit report
C00092	base	docs/postgres/03-locking/nowait-skip-locked.md:42	docs/postgres/03-locking/nowait-skip-locked.md#heading@42	heading	"## Further reading"	P4	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/nowait-skip-locked.md#heading@29 (docs/postgres/03-locking/nowait-skip-locked.md:29); current scoped support applies
C00093	base	docs/postgres/03-locking/nowait-skip-locked.md:44	docs/postgres/03-locking/nowait-skip-locked.md#section[## Further reading].paragraph@44	lesson-paragraph	"- [PostgreSQL docs: SELECT: The Locking Clause](https://www.postgresql.org/docs/current/sql-select.html#SQL-FOR-UPDATE-SHARE),\n  NOWAIT and SKIP LOCKED semantics\n- [PostgreSQL docs: `lock_timeout`](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-LOCK-TIMEOUT)\n- [The same lesson on MySQL](/mysql/03-locking/nowait-skip-locked)"	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/nowait-skip-locked.md#section[## Further reading].paragraph@31; semantic decisions A1-A10 in audit report
C00094	current	docs/postgres/03-locking/nowait-skip-locked.md:1	docs/postgres/03-locking/nowait-skip-locked.md#heading@1	heading	"# NOWAIT, lock_timeout, SKIP LOCKED"	P4	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00095	current	docs/postgres/03-locking/nowait-skip-locked.md:3	docs/postgres/03-locking/nowait-skip-locked.md#section[# NOWAIT, lock_timeout, SKIP LOCKED].paragraph@3	lesson-paragraph	"These PostgreSQL 18 controls change different parts of lock waiting:"	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00096	current	docs/postgres/03-locking/nowait-skip-locked.md:5	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[Escape hatch].column[Escape hatch]	table-cell	"Escape hatch"	P4	PostgreSQL 18; row subject Escape hatch; column Escape hatch; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00097	current	docs/postgres/03-locking/nowait-skip-locked.md:5	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[Escape hatch].column[The question it answers]	table-cell	"The question it answers"	P4	PostgreSQL 18; row subject Escape hatch; column The question it answers; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00098	current	docs/postgres/03-locking/nowait-skip-locked.md:7	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`NOWAIT`].column[Escape hatch]	table-cell	"`NOWAIT`"	P4	PostgreSQL 18; row subject `NOWAIT`; column Escape hatch; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00099	current	docs/postgres/03-locking/nowait-skip-locked.md:7	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`NOWAIT`].column[The question it answers]	table-cell	"Can this locking read acquire the required row locks without waiting? A conflicting row lock raises `55P03`."	P4	PostgreSQL 18; row subject `NOWAIT`; column The question it answers; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00100	current	docs/postgres/03-locking/nowait-skip-locked.md:8	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`lock_timeout`].column[Escape hatch]	table-cell	"`lock_timeout`"	P4	PostgreSQL 18; row subject `lock_timeout`; column Escape hatch; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00101	current	docs/postgres/03-locking/nowait-skip-locked.md:8	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`lock_timeout`].column[The question it answers]	table-cell	"Has an individual lock acquisition waited longer than the configured nonzero limit? The demonstrated expiry raises `55P03`."	P4	PostgreSQL 18; row subject `lock_timeout`; column The question it answers; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00102	current	docs/postgres/03-locking/nowait-skip-locked.md:9	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`SKIP LOCKED`].column[Escape hatch]	table-cell	"`SKIP LOCKED`"	P4	PostgreSQL 18; row subject `SKIP LOCKED`; column Escape hatch; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00103	current	docs/postgres/03-locking/nowait-skip-locked.md:9	docs/postgres/03-locking/nowait-skip-locked.md#table[1].row[`SKIP LOCKED`].column[The question it answers]	table-cell	"Which selected rows can this locking read lock now? Conflicting row locks are skipped."	P4	PostgreSQL 18; row subject `SKIP LOCKED`; column The question it answers; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00104	current	docs/postgres/03-locking/nowait-skip-locked.md:11	docs/postgres/03-locking/nowait-skip-locked.md#heading@11	heading	"## NOWAIT: fail fast"	P4	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00105	current	docs/postgres/03-locking/nowait-skip-locked.md:13	docs/postgres/03-locking/nowait-skip-locked.md#section[## NOWAIT: fail fast].paragraph@13	lesson-paragraph	"<!--@include: ./parts/nowait.md-->"	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00106	current	docs/postgres/03-locking/nowait-skip-locked.md:15	docs/postgres/03-locking/nowait-skip-locked.md#heading@15	heading	"## lock_timeout: bounded patience"	P4	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00107	current	docs/postgres/03-locking/nowait-skip-locked.md:17	docs/postgres/03-locking/nowait-skip-locked.md#section[## lock_timeout: bounded patience].paragraph@17	lesson-paragraph	"<!--@include: ./parts/lock-timeout.md-->"	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00108	current	docs/postgres/03-locking/nowait-skip-locked.md:19	docs/postgres/03-locking/nowait-skip-locked.md#section[## lock_timeout: bounded patience].paragraph@19	lesson-paragraph	"[`lock_timeout`](https://www.postgresql.org/docs/18/runtime-config-client.html#GUC-LOCK-TIMEOUT) applies separately to each acquisition, not to total statement time. If a shorter `statement_timeout` applies, it can fire first. Here B runs standalone statements, so its failed statement ends its implicit transaction. Inside an explicit transaction an error requires rollback or recovery through a previously established savepoint before ordinary commands can continue. Retry with fresh decisions only when the application permits it."	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00109	current	docs/postgres/03-locking/nowait-skip-locked.md:21	docs/postgres/03-locking/nowait-skip-locked.md#heading@21	heading	"## SKIP LOCKED: the job-queue primitive"	P4	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00110	current	docs/postgres/03-locking/nowait-skip-locked.md:23	docs/postgres/03-locking/nowait-skip-locked.md#section[## SKIP LOCKED: the job-queue primitive].paragraph@23	lesson-paragraph	"<!--@include: ./parts/skip-locked.md-->"	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00111	current	docs/postgres/03-locking/nowait-skip-locked.md:25	docs/postgres/03-locking/nowait-skip-locked.md#section[## SKIP LOCKED: the job-queue primitive].paragraph@25	lesson-paragraph	"The [SELECT contract](https://www.postgresql.org/docs/18/sql-select.html#SQL-FOR-UPDATE-SHARE) scopes NOWAIT and SKIP LOCKED to row locks. The required table-level `ROW SHARE` lock is still acquired normally; other waits and errors remain possible. SKIP LOCKED does not itself raise `55P03` for a skipped row. It produces an inconsistent view suitable for queue-like consumers, not general reporting."	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00112	current	docs/postgres/03-locking/nowait-skip-locked.md:27	docs/postgres/03-locking/nowait-skip-locked.md#section[## SKIP LOCKED: the job-queue primitive].paragraph@27	lesson-paragraph	"The workers' overlapping transactions are scheduled one after another, not dispatched simultaneously. They assert jobs 1, 2, 3 and then no available row. Explicit rollback releases A's lock, after which D asserts job 1 again. This establishes database-local row availability, not process-crash testing, fairness, duplicate-free external execution, or universal no-wait behavior. The [worker-queue lesson](/postgres/05-patterns/job-queue) builds on this boundary."	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00113	current	docs/postgres/03-locking/nowait-skip-locked.md:29	docs/postgres/03-locking/nowait-skip-locked.md#heading@29	heading	"## Further reading"	P4	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00114	current	docs/postgres/03-locking/nowait-skip-locked.md:31	docs/postgres/03-locking/nowait-skip-locked.md#section[## Further reading].paragraph@31	lesson-paragraph	"- [PostgreSQL 18: SELECT locking clause](https://www.postgresql.org/docs/18/sql-select.html#SQL-FOR-UPDATE-SHARE)\n- [PostgreSQL 18: lock_timeout](https://www.postgresql.org/docs/18/runtime-config-client.html#GUC-LOCK-TIMEOUT)\n- [The same lesson on MySQL](/mysql/03-locking/nowait-skip-locked)"	P4	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00115	base	docs/postgres/03-locking/row-locks.md:1	docs/postgres/03-locking/row-locks.md#heading@1	heading	"# Row locks"	P5	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/row-locks.md#heading@1 (docs/postgres/03-locking/row-locks.md:1); current scoped support applies
C00116	base	docs/postgres/03-locking/row-locks.md:3	docs/postgres/03-locking/row-locks.md#section[# Row locks].paragraph@3	lesson-paragraph	"MVCC means readers and writers never block each other. So who *does* block? Writers competing\nfor the same rows. Every UPDATE and DELETE takes a row lock, and you can take one explicitly\nwith `SELECT ... FOR UPDATE` and friends. This page shows what those locks do, which ones\ncoexist, and the row locks you're taking without knowing it."	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/row-locks.md#section[# Row locks].paragraph@3; semantic decisions A1-A10 in audit report
C00117	base	docs/postgres/03-locking/row-locks.md:8	docs/postgres/03-locking/row-locks.md#heading@8	heading	"## FOR UPDATE blocks writers, and only writers"	P5	Baseline overbroad short claim; its original text is retained as audit history, not accepted support		Unsupported as stated; replacement is limited to the observed schedule and assertions identified by C00157	Narrowed at docs/postgres/03-locking/row-locks.md#heading@7 (docs/postgres/03-locking/row-locks.md:7); C00157 records exact replacement text and support; no general exclusivity, fairness or all-work maintenance guarantee
C00118	base	docs/postgres/03-locking/row-locks.md:10	docs/postgres/03-locking/row-locks.md#section[## FOR UPDATE blocks writers, and only writers].paragraph@10	lesson-paragraph	"<!--@include: ./parts/for-update-blocks.md-->"	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/03-locking/row-locks.md#section[## An ordinary SELECT succeeds while UPDATE waits].paragraph@11 (docs/postgres/03-locking/row-locks.md:11); current scoped support applies
C00119	base	docs/postgres/03-locking/row-locks.md:12	docs/postgres/03-locking/row-locks.md#heading@12	heading	"## The four modes"	P5	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/row-locks.md#heading@13 (docs/postgres/03-locking/row-locks.md:13); current scoped support applies
C00120	base	docs/postgres/03-locking/row-locks.md:14	docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@14	lesson-paragraph	"Row locks come in four strengths\n([the manual's Table 13.3](https://www.postgresql.org/docs/current/explicit-locking.html#ROW-LOCK-COMPATIBILITY)\nis the same conflict matrix):"	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@15; docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@24; docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@26; docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@28; semantic decisions A1-A10 in audit report
C00121	base	docs/postgres/03-locking/row-locks.md:18	docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[you hold ↓ / they want →]	table-cell	"you hold ↓ / they want →"	P5	PostgreSQL 18; row subject you hold ↓ / they want →; column you hold ↓ / they want →; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[you hold ↓ / they want →] (docs/postgres/03-locking/row-locks.md:17); current scoped support applies
C00122	base	docs/postgres/03-locking/row-locks.md:18	docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[FOR KEY SHARE]	table-cell	"FOR KEY SHARE"	P5	PostgreSQL 18; row subject you hold ↓ / they want →; column FOR KEY SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[FOR KEY SHARE] (docs/postgres/03-locking/row-locks.md:17); current scoped support applies
C00123	base	docs/postgres/03-locking/row-locks.md:18	docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[FOR SHARE]	table-cell	"FOR SHARE"	P5	PostgreSQL 18; row subject you hold ↓ / they want →; column FOR SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[FOR SHARE] (docs/postgres/03-locking/row-locks.md:17); current scoped support applies
C00124	base	docs/postgres/03-locking/row-locks.md:18	docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[FOR NO KEY UPDATE]	table-cell	"FOR NO KEY UPDATE"	P5	PostgreSQL 18; row subject you hold ↓ / they want →; column FOR NO KEY UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[FOR NO KEY UPDATE] (docs/postgres/03-locking/row-locks.md:17); current scoped support applies
C00125	base	docs/postgres/03-locking/row-locks.md:18	docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[FOR UPDATE]	table-cell	"FOR UPDATE"	P5	PostgreSQL 18; row subject you hold ↓ / they want →; column FOR UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[FOR UPDATE] (docs/postgres/03-locking/row-locks.md:17); current scoped support applies
C00126	base	docs/postgres/03-locking/row-locks.md:20	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[you hold ↓ / they want →]	table-cell	"**FOR KEY SHARE**"	P5	PostgreSQL 18; row subject **FOR KEY SHARE**; column you hold ↓ / they want →; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[you hold ↓ / they want →] (docs/postgres/03-locking/row-locks.md:19); current scoped support applies
C00127	base	docs/postgres/03-locking/row-locks.md:20	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[FOR KEY SHARE]	table-cell	"✅"	P5	PostgreSQL 18; row subject **FOR KEY SHARE**; column FOR KEY SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[FOR KEY SHARE] (docs/postgres/03-locking/row-locks.md:19); current scoped support applies
C00128	base	docs/postgres/03-locking/row-locks.md:20	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[FOR SHARE]	table-cell	"✅"	P5	PostgreSQL 18; row subject **FOR KEY SHARE**; column FOR SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[FOR SHARE] (docs/postgres/03-locking/row-locks.md:19); current scoped support applies
C00129	base	docs/postgres/03-locking/row-locks.md:20	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[FOR NO KEY UPDATE]	table-cell	"✅"	P5	PostgreSQL 18; row subject **FOR KEY SHARE**; column FOR NO KEY UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[FOR NO KEY UPDATE] (docs/postgres/03-locking/row-locks.md:19); current scoped support applies
C00130	base	docs/postgres/03-locking/row-locks.md:20	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[FOR UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR KEY SHARE**; column FOR UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[FOR UPDATE] (docs/postgres/03-locking/row-locks.md:19); current scoped support applies
C00131	base	docs/postgres/03-locking/row-locks.md:21	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[you hold ↓ / they want →]	table-cell	"**FOR SHARE**"	P5	PostgreSQL 18; row subject **FOR SHARE**; column you hold ↓ / they want →; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[you hold ↓ / they want →] (docs/postgres/03-locking/row-locks.md:20); current scoped support applies
C00132	base	docs/postgres/03-locking/row-locks.md:21	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[FOR KEY SHARE]	table-cell	"✅"	P5	PostgreSQL 18; row subject **FOR SHARE**; column FOR KEY SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[FOR KEY SHARE] (docs/postgres/03-locking/row-locks.md:20); current scoped support applies
C00133	base	docs/postgres/03-locking/row-locks.md:21	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[FOR SHARE]	table-cell	"✅"	P5	PostgreSQL 18; row subject **FOR SHARE**; column FOR SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[FOR SHARE] (docs/postgres/03-locking/row-locks.md:20); current scoped support applies
C00134	base	docs/postgres/03-locking/row-locks.md:21	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[FOR NO KEY UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR SHARE**; column FOR NO KEY UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[FOR NO KEY UPDATE] (docs/postgres/03-locking/row-locks.md:20); current scoped support applies
C00135	base	docs/postgres/03-locking/row-locks.md:21	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[FOR UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR SHARE**; column FOR UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[FOR UPDATE] (docs/postgres/03-locking/row-locks.md:20); current scoped support applies
C00136	base	docs/postgres/03-locking/row-locks.md:22	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[you hold ↓ / they want →]	table-cell	"**FOR NO KEY UPDATE**"	P5	PostgreSQL 18; row subject **FOR NO KEY UPDATE**; column you hold ↓ / they want →; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[you hold ↓ / they want →] (docs/postgres/03-locking/row-locks.md:21); current scoped support applies
C00137	base	docs/postgres/03-locking/row-locks.md:22	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[FOR KEY SHARE]	table-cell	"✅"	P5	PostgreSQL 18; row subject **FOR NO KEY UPDATE**; column FOR KEY SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[FOR KEY SHARE] (docs/postgres/03-locking/row-locks.md:21); current scoped support applies
C00138	base	docs/postgres/03-locking/row-locks.md:22	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[FOR SHARE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR NO KEY UPDATE**; column FOR SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[FOR SHARE] (docs/postgres/03-locking/row-locks.md:21); current scoped support applies
C00139	base	docs/postgres/03-locking/row-locks.md:22	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[FOR NO KEY UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR NO KEY UPDATE**; column FOR NO KEY UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[FOR NO KEY UPDATE] (docs/postgres/03-locking/row-locks.md:21); current scoped support applies
C00140	base	docs/postgres/03-locking/row-locks.md:22	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[FOR UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR NO KEY UPDATE**; column FOR UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[FOR UPDATE] (docs/postgres/03-locking/row-locks.md:21); current scoped support applies
C00141	base	docs/postgres/03-locking/row-locks.md:23	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[you hold ↓ / they want →]	table-cell	"**FOR UPDATE**"	P5	PostgreSQL 18; row subject **FOR UPDATE**; column you hold ↓ / they want →; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[you hold ↓ / they want →] (docs/postgres/03-locking/row-locks.md:22); current scoped support applies
C00142	base	docs/postgres/03-locking/row-locks.md:23	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[FOR KEY SHARE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR UPDATE**; column FOR KEY SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[FOR KEY SHARE] (docs/postgres/03-locking/row-locks.md:22); current scoped support applies
C00143	base	docs/postgres/03-locking/row-locks.md:23	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[FOR SHARE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR UPDATE**; column FOR SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[FOR SHARE] (docs/postgres/03-locking/row-locks.md:22); current scoped support applies
C00144	base	docs/postgres/03-locking/row-locks.md:23	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[FOR NO KEY UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR UPDATE**; column FOR NO KEY UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[FOR NO KEY UPDATE] (docs/postgres/03-locking/row-locks.md:22); current scoped support applies
C00145	base	docs/postgres/03-locking/row-locks.md:23	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[FOR UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR UPDATE**; column FOR UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[FOR UPDATE] (docs/postgres/03-locking/row-locks.md:22); current scoped support applies
C00146	base	docs/postgres/03-locking/row-locks.md:25	docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@25	lesson-paragraph	"You rarely type the middle two by hand, yet PostgreSQL reaches for them constantly\n([Row-Level Locks](https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-ROWS)).\nAn UPDATE that doesn't touch key columns takes `FOR NO KEY UPDATE`. The manual: \"This lock mode\nis also acquired by any UPDATE that does not acquire a FOR UPDATE lock.\" An UPDATE that changes a\nkey, and every DELETE, takes the full `FOR UPDATE`. A foreign-key check takes the weakest mode,\n`FOR KEY SHARE`, on the referenced row; the manual never quite says so, but the scenario below\nproves it: the conflict signature you'll see, a non-key UPDATE passing while a DELETE blocks,\nmatches `FOR KEY SHARE` and nothing else in the matrix."	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@15; docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@24; docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@26; docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@28; semantic decisions A1-A10 in audit report
C00147	base	docs/postgres/03-locking/row-locks.md:34	docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@34	lesson-paragraph	"<!--@include: ./parts/lock-mode-matrix.md-->"	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@26 (docs/postgres/03-locking/row-locks.md:26); current scoped support applies
C00148	base	docs/postgres/03-locking/row-locks.md:36	docs/postgres/03-locking/row-locks.md#heading@36	heading	"## The row locks you didn't know you were taking"	P5	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/row-locks.md#heading@30 (docs/postgres/03-locking/row-locks.md:30); current scoped support applies
C00149	base	docs/postgres/03-locking/row-locks.md:38	docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@38	lesson-paragraph	"Insert a child row, and PostgreSQL locks the parent row for you, with `FOR KEY SHARE`, so the\nparent can still be updated, but not deleted or re-keyed. That's not a courtesy: without the\nlock, the parent could vanish between the FK check and the commit."	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@32; docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@34; docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@36; semantic decisions A1-A10 in audit report
C00150	base	docs/postgres/03-locking/row-locks.md:42	docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@42	lesson-paragraph	"<!--@include: ./parts/fk-key-share.md-->"	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@32 (docs/postgres/03-locking/row-locks.md:32); current scoped support applies
C00151	base	docs/postgres/03-locking/row-locks.md:44	docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@44	lesson-paragraph	"Once you know the implicit locks, most \"why is this blocked?\" mysteries explain themselves. A\nplain `SELECT` takes no row locks, ever. Row locks are a writers-only affair. `UPDATE` takes\n`FOR NO KEY UPDATE`, `DELETE` (or a key-changing `UPDATE`) takes `FOR UPDATE`, and an FK insert\ntakes `FOR KEY SHARE` on the parent. Two share-mode locks coexist, which is what keeps hot\nparent rows survivable under foreign-key churn."	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@32; docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@34; docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@36; semantic decisions A1-A10 in audit report
C00152	base	docs/postgres/03-locking/row-locks.md:50	docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@50	lesson-paragraph	"Two properties of row locks carry over into the next chapters. They live until the transaction\nends: there's no unlock statement, so a long transaction means long-held locks. And they're\nwritten into the row on disk: `SELECT FOR UPDATE` causes writes, which is why there's\n[no limit on how many rows you can lock](https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-ROWS)\nand why they're invisible in `pg_locks`. The [monitoring lesson](/postgres/03-locking/monitoring-locks)\nshows what you see instead, and the MVCC chapter shows the `xmax` stamp that does the work."	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@32; docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@34; docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@36; semantic decisions A1-A10 in audit report
C00153	base	docs/postgres/03-locking/row-locks.md:57	docs/postgres/03-locking/row-locks.md#heading@57	heading	"## Further reading"	P5	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/row-locks.md#heading@38 (docs/postgres/03-locking/row-locks.md:38); current scoped support applies
C00154	base	docs/postgres/03-locking/row-locks.md:59	docs/postgres/03-locking/row-locks.md#section[## Further reading].paragraph@59	lesson-paragraph	"- [PostgreSQL docs: Row-Level Locks](https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-ROWS)\n- [PostgreSQL docs: SELECT: The Locking Clause](https://www.postgresql.org/docs/current/sql-select.html#SQL-FOR-UPDATE-SHARE)\n- [The same lesson on MySQL](/mysql/03-locking/row-locks)"	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/row-locks.md#section[## Further reading].paragraph@40; semantic decisions A1-A10 in audit report
C00155	current	docs/postgres/03-locking/row-locks.md:1	docs/postgres/03-locking/row-locks.md#heading@1	heading	"# Row locks"	P5	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00156	current	docs/postgres/03-locking/row-locks.md:3	docs/postgres/03-locking/row-locks.md#section[# Row locks].paragraph@3	lesson-paragraph	"Ordinary MVCC SELECTs do not conflict with row locks. Locking SELECTs, UPDATEs and DELETEs can conflict on the same row. Table locks, functions called by a query, and other resources can still cause a read to wait. This chapter uses PostgreSQL 18; the linked transcripts state the executed patch version."	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00157	current	docs/postgres/03-locking/row-locks.md:7	docs/postgres/03-locking/row-locks.md#heading@7	heading	"## An ordinary SELECT succeeds while UPDATE waits"	P5	PostgreSQL 18.6; the demonstrated Read Committed SELECT/UPDATE schedule, not locking SELECTs or every resource wait		D: scenarios/postgres/03-locking/for-update-blocks.yaml#steps[3].expect, #steps[5].blocks, #steps[8].success and #steps[9].expect; ordinary read returns 100, UPDATE waits and leaves 140	Resolved: narrowed short claim to the explicitly supported observation; legacy fragment retained only as a non-visible anchor ID
C00158	current	docs/postgres/03-locking/row-locks.md:9	docs/postgres/03-locking/row-locks.md#section[## An ordinary SELECT succeeds while UPDATE waits].paragraph@9	lesson-paragraph	"Here B's ordinary SELECT returns 100 while A holds FOR UPDATE; B's UPDATE waits, then uses A's committed 150 and leaves 140. FOR UPDATE also conflicts with other sessions' locking reads."	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00159	current	docs/postgres/03-locking/row-locks.md:11	docs/postgres/03-locking/row-locks.md#section[## An ordinary SELECT succeeds while UPDATE waits].paragraph@11	lesson-paragraph	"<!--@include: ./parts/for-update-blocks.md-->"	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00160	current	docs/postgres/03-locking/row-locks.md:13	docs/postgres/03-locking/row-locks.md#heading@13	heading	"## The four modes"	P5	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00161	current	docs/postgres/03-locking/row-locks.md:15	docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@15	lesson-paragraph	"This complete compatibility table is a [Documented contract, Table 13.3](https://www.postgresql.org/docs/18/explicit-locking.html#ROW-LOCK-COMPATIBILITY), not sixteen executed combinations. ✅ means compatible between different transactions; ⛔ means conflicting requests on the same row."	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00162	current	docs/postgres/03-locking/row-locks.md:17	docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[you hold ↓ / they want →]	table-cell	"you hold ↓ / they want →"	P5	PostgreSQL 18; row subject you hold ↓ / they want →; column you hold ↓ / they want →; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00163	current	docs/postgres/03-locking/row-locks.md:17	docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[FOR KEY SHARE]	table-cell	"FOR KEY SHARE"	P5	PostgreSQL 18; row subject you hold ↓ / they want →; column FOR KEY SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00164	current	docs/postgres/03-locking/row-locks.md:17	docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[FOR SHARE]	table-cell	"FOR SHARE"	P5	PostgreSQL 18; row subject you hold ↓ / they want →; column FOR SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00165	current	docs/postgres/03-locking/row-locks.md:17	docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[FOR NO KEY UPDATE]	table-cell	"FOR NO KEY UPDATE"	P5	PostgreSQL 18; row subject you hold ↓ / they want →; column FOR NO KEY UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00166	current	docs/postgres/03-locking/row-locks.md:17	docs/postgres/03-locking/row-locks.md#table[1].row[you hold ↓ / they want →].column[FOR UPDATE]	table-cell	"FOR UPDATE"	P5	PostgreSQL 18; row subject you hold ↓ / they want →; column FOR UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00167	current	docs/postgres/03-locking/row-locks.md:19	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[you hold ↓ / they want →]	table-cell	"**FOR KEY SHARE**"	P5	PostgreSQL 18; row subject **FOR KEY SHARE**; column you hold ↓ / they want →; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00168	current	docs/postgres/03-locking/row-locks.md:19	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[FOR KEY SHARE]	table-cell	"✅"	P5	PostgreSQL 18; row subject **FOR KEY SHARE**; column FOR KEY SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00169	current	docs/postgres/03-locking/row-locks.md:19	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[FOR SHARE]	table-cell	"✅"	P5	PostgreSQL 18; row subject **FOR KEY SHARE**; column FOR SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00170	current	docs/postgres/03-locking/row-locks.md:19	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[FOR NO KEY UPDATE]	table-cell	"✅"	P5	PostgreSQL 18; row subject **FOR KEY SHARE**; column FOR NO KEY UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00171	current	docs/postgres/03-locking/row-locks.md:19	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR KEY SHARE**].column[FOR UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR KEY SHARE**; column FOR UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00172	current	docs/postgres/03-locking/row-locks.md:20	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[you hold ↓ / they want →]	table-cell	"**FOR SHARE**"	P5	PostgreSQL 18; row subject **FOR SHARE**; column you hold ↓ / they want →; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00173	current	docs/postgres/03-locking/row-locks.md:20	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[FOR KEY SHARE]	table-cell	"✅"	P5	PostgreSQL 18; row subject **FOR SHARE**; column FOR KEY SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00174	current	docs/postgres/03-locking/row-locks.md:20	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[FOR SHARE]	table-cell	"✅"	P5	PostgreSQL 18; row subject **FOR SHARE**; column FOR SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00175	current	docs/postgres/03-locking/row-locks.md:20	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[FOR NO KEY UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR SHARE**; column FOR NO KEY UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00176	current	docs/postgres/03-locking/row-locks.md:20	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR SHARE**].column[FOR UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR SHARE**; column FOR UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00177	current	docs/postgres/03-locking/row-locks.md:21	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[you hold ↓ / they want →]	table-cell	"**FOR NO KEY UPDATE**"	P5	PostgreSQL 18; row subject **FOR NO KEY UPDATE**; column you hold ↓ / they want →; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00178	current	docs/postgres/03-locking/row-locks.md:21	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[FOR KEY SHARE]	table-cell	"✅"	P5	PostgreSQL 18; row subject **FOR NO KEY UPDATE**; column FOR KEY SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00179	current	docs/postgres/03-locking/row-locks.md:21	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[FOR SHARE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR NO KEY UPDATE**; column FOR SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00180	current	docs/postgres/03-locking/row-locks.md:21	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[FOR NO KEY UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR NO KEY UPDATE**; column FOR NO KEY UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00181	current	docs/postgres/03-locking/row-locks.md:21	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR NO KEY UPDATE**].column[FOR UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR NO KEY UPDATE**; column FOR UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00182	current	docs/postgres/03-locking/row-locks.md:22	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[you hold ↓ / they want →]	table-cell	"**FOR UPDATE**"	P5	PostgreSQL 18; row subject **FOR UPDATE**; column you hold ↓ / they want →; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00183	current	docs/postgres/03-locking/row-locks.md:22	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[FOR KEY SHARE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR UPDATE**; column FOR KEY SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00184	current	docs/postgres/03-locking/row-locks.md:22	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[FOR SHARE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR UPDATE**; column FOR SHARE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00185	current	docs/postgres/03-locking/row-locks.md:22	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[FOR NO KEY UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR UPDATE**; column FOR NO KEY UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00186	current	docs/postgres/03-locking/row-locks.md:22	docs/postgres/03-locking/row-locks.md#table[1].row[**FOR UPDATE**].column[FOR UPDATE]	table-cell	"⛔"	P5	PostgreSQL 18; row subject **FOR UPDATE**; column FOR UPDATE; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00187	current	docs/postgres/03-locking/row-locks.md:24	docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@24	lesson-paragraph	"The [row-lock contract](https://www.postgresql.org/docs/18/explicit-locking.html#LOCKING-ROWS) specifies FOR UPDATE for DELETE and UPDATEs of certain key columns: currently columns with a unique index usable for a foreign key, excluding partial and expression indexes. Other UPDATEs take FOR NO KEY UPDATE. Do not treat every indexed-column update as key-changing for this rule."	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00188	current	docs/postgres/03-locking/row-locks.md:26	docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@26	lesson-paragraph	"<!--@include: ./parts/lock-mode-matrix.md-->"	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00189	current	docs/postgres/03-locking/row-locks.md:28	docs/postgres/03-locking/row-locks.md#section[## The four modes].paragraph@28	lesson-paragraph	"This schedule executes SHARE/SHARE coexistence, SHARE blocking a non-key UPDATE, KEY SHARE coexisting with that UPDATE, and FOR UPDATE waiting for it. It does not execute the entire table."	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00190	current	docs/postgres/03-locking/row-locks.md:30	docs/postgres/03-locking/row-locks.md#heading@30	heading	"## The row locks you didn't know you were taking"	P5	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00191	current	docs/postgres/03-locking/row-locks.md:32	docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@32	lesson-paragraph	"<!--@include: ./parts/fk-key-share.md-->"	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00192	current	docs/postgres/03-locking/row-locks.md:34	docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@34	lesson-paragraph	"The immediate foreign-key insert in this setup allows B's non-key update while its parent DELETE waits and later fails with `23503`. That conflict signature is consistent with KEY SHARE; the scenario does not directly decode the lock mode. PostgreSQL 18's [foreign-key implementation](https://github.com/postgres/postgres/blob/REL_18_STABLE/src/backend/utils/adt/ri_triggers.c) uses a FOR KEY SHARE lookup for this check. Deferred checks and other actions are not executed here."	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00193	current	docs/postgres/03-locking/row-locks.md:36	docs/postgres/03-locking/row-locks.md#section[## The row locks you didn't know you were taking].paragraph@36	lesson-paragraph	"Row locks normally remain until transaction end, but [rollback to a savepoint releases locks acquired since it](https://www.postgresql.org/docs/18/explicit-locking.html#LOCKING-ROWS). Row locking can write tuple headers to disk. Ordinary row locks normally do not appear in `pg_locks`; the [monitoring lesson](/postgres/03-locking/monitoring-locks) shows the wait representation. SELECT without a locking clause does not by itself acquire these row-lock modes, but called functions can take locks."	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00194	current	docs/postgres/03-locking/row-locks.md:38	docs/postgres/03-locking/row-locks.md#heading@38	heading	"## Further reading"	P5	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00195	current	docs/postgres/03-locking/row-locks.md:40	docs/postgres/03-locking/row-locks.md#section[## Further reading].paragraph@40	lesson-paragraph	"- [PostgreSQL 18: Row-Level Locks](https://www.postgresql.org/docs/18/explicit-locking.html#LOCKING-ROWS)\n- [PostgreSQL 18: SELECT locking clause](https://www.postgresql.org/docs/18/sql-select.html#SQL-FOR-UPDATE-SHARE)\n- [The same lesson on MySQL](/mysql/03-locking/row-locks)"	P5	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00196	base	docs/postgres/03-locking/table-locks-and-ddl.md:1	docs/postgres/03-locking/table-locks-and-ddl.md#heading@1	heading	"# Table locks & DDL"	P6	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/table-locks-and-ddl.md#heading@1 (docs/postgres/03-locking/table-locks-and-ddl.md:1); current scoped support applies
C00197	base	docs/postgres/03-locking/table-locks-and-ddl.md:3	docs/postgres/03-locking/table-locks-and-ddl.md#section[# Table locks & DDL].paragraph@3	lesson-paragraph	"Row locks are what you fight over in application code. Table locks are what take your site\ndown during a deploy. Every statement (even a plain `SELECT`) locks every table it touches;\nthe modes usually don't conflict, so you never feel it. Then a migration shows up."	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/table-locks-and-ddl.md#section[# Table locks & DDL].paragraph@3; semantic decisions A1-A10 in audit report
C00198	base	docs/postgres/03-locking/table-locks-and-ddl.md:7	docs/postgres/03-locking/table-locks-and-ddl.md#section[# Table locks & DDL].paragraph@7	lesson-paragraph	"A `SELECT` takes `ACCESS SHARE`, the weakest table lock. `DROP TABLE`, `TRUNCATE`, and most\nforms of `ALTER TABLE` take `ACCESS EXCLUSIVE`. The manual's rule for ALTER TABLE is that\n[\"An ACCESS EXCLUSIVE lock is acquired unless explicitly noted\"](https://www.postgresql.org/docs/current/sql-altertable.html),\nand `ACCESS EXCLUSIVE`\n[conflicts with *all* modes](https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES),\n`ACCESS SHARE` included. So the strongest table lock and the weakest one can't coexist, which\nis the entire story of a DDL outage compressed into one sentence."	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/table-locks-and-ddl.md#section[# Table locks & DDL].paragraph@3; semantic decisions A1-A10 in audit report
C00199	base	docs/postgres/03-locking/table-locks-and-ddl.md:15	docs/postgres/03-locking/table-locks-and-ddl.md#section[# Table locks & DDL].paragraph@15	lesson-paragraph	"On its own that's fine: the ALTER waits for running queries to finish, then does its\n(often fast) work. The disaster needs one more ingredient: the [lock queue](/postgres/03-locking/lock-queues)."	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/table-locks-and-ddl.md#section[# Table locks & DDL].paragraph@3; semantic decisions A1-A10 in audit report
C00200	base	docs/postgres/03-locking/table-locks-and-ddl.md:18	docs/postgres/03-locking/table-locks-and-ddl.md#heading@18	heading	"## The outage, reproduced"	P6	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/table-locks-and-ddl.md#heading@5 (docs/postgres/03-locking/table-locks-and-ddl.md:5); current scoped support applies
C00201	base	docs/postgres/03-locking/table-locks-and-ddl.md:20	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@20	lesson-paragraph	"Picture three sessions. A long-lived transaction has already read the table and is sitting\nthere holding `ACCESS SHARE`. A migration asks for `ACCESS EXCLUSIVE` and can't have it, so it\nwaits. And here's the twist: once that migration is waiting, every plain `SELECT` that arrives\nafter it has to queue too."	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@7; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@9; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@11; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@13; semantic decisions A1-A10 in audit report
C00202	base	docs/postgres/03-locking/table-locks-and-ddl.md:25	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@25	lesson-paragraph	"```timeline\nSession A: SELECT … (in a long txn) → holds ACCESS SHARE on accounts\nSession B: ALTER TABLE accounts … → ⏳ waits — ACCESS EXCLUSIVE conflicts with A\nSession C: SELECT … (a plain read) → ⏳ blocked behind B's queued ACCESS EXCLUSIVE\nSession A: COMMIT → B's ALTER runs, then C's read drains\n```"	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@7; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@9; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@11; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@13; semantic decisions A1-A10 in audit report
C00203	base	docs/postgres/03-locking/table-locks-and-ddl.md:32	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@32	lesson-paragraph	"<!--@include: ./parts/alter-table-outage.md-->"	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@9 (docs/postgres/03-locking/table-locks-and-ddl.md:9); current scoped support applies
C00204	base	docs/postgres/03-locking/table-locks-and-ddl.md:34	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@34	lesson-paragraph	"The cruel part: the `ALTER` itself is instant. What kills you is a *waiting* `ALTER`, because\nevery later query (reads included) must queue behind its `ACCESS EXCLUSIVE` request. One\nforgotten `BEGIN` in a console session plus one routine migration equals a full table outage."	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@7; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@9; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@11; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@13; semantic decisions A1-A10 in audit report
C00205	base	docs/postgres/03-locking/table-locks-and-ddl.md:38	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@38	lesson-paragraph	"::: warning Never run DDL without `lock_timeout`\nA migration that fails fast and retries is a non-event; a migration that queues is an outage.\n:::"	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@7; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@9; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@11; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@13; semantic decisions A1-A10 in audit report
C00206	base	docs/postgres/03-locking/table-locks-and-ddl.md:42	docs/postgres/03-locking/table-locks-and-ddl.md#heading@42	heading	"## The fix: lock_timeout + retry"	P6	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/table-locks-and-ddl.md#heading@17 (docs/postgres/03-locking/table-locks-and-ddl.md:17); current scoped support applies
C00207	base	docs/postgres/03-locking/table-locks-and-ddl.md:44	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@44	lesson-paragraph	"<!--@include: ./parts/ddl-lock-timeout.md-->"	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@19 (docs/postgres/03-locking/table-locks-and-ddl.md:19); current scoped support applies
C00208	base	docs/postgres/03-locking/table-locks-and-ddl.md:46	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@46	lesson-paragraph	"Set `lock_timeout` once in your migration tool, per session rather than in `postgresql.conf`.\nThe manual [advises against setting it globally](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-LOCK-TIMEOUT)\nbecause it would trip every session, not only your migrations. A migration that can't get its\nlock now fails fast and retries instead of parking a `ACCESS EXCLUSIVE` request at the head of\nthe queue."	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@19; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@21; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@23; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@25; semantic decisions A1-A10 in audit report
C00209	base	docs/postgres/03-locking/table-locks-and-ddl.md:52	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@52	lesson-paragraph	"That leaves one number to respect: the blast radius. It's the longest transaction currently\ntouching the table multiplied by all the traffic on that table, which is why long-running\ntransactions and migrations are natural enemies. It also helps to know that not every\n`ALTER TABLE` is equally dangerous: the\n[manual lists the lock each form takes](https://www.postgresql.org/docs/current/sql-altertable.html),\nand some are gentle. `SET STATISTICS` needs only `SHARE UPDATE EXCLUSIVE`, which blocks neither\nreads nor writes. A plain `CREATE INDEX`\n[locks out writes but not reads](https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-CONCURRENTLY);\n`CREATE INDEX CONCURRENTLY` exists to avoid even that. When you do want to watch a pile-up form\nlive, the wait-chain query from the transcript is unpacked in the next lesson on\n[monitoring locks](/postgres/03-locking/monitoring-locks)."	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@19; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@21; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@23; docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@25; semantic decisions A1-A10 in audit report
C00210	base	docs/postgres/03-locking/table-locks-and-ddl.md:64	docs/postgres/03-locking/table-locks-and-ddl.md#heading@64	heading	"## Further reading"	P6	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/03-locking/table-locks-and-ddl.md#heading@27 (docs/postgres/03-locking/table-locks-and-ddl.md:27); current scoped support applies
C00211	base	docs/postgres/03-locking/table-locks-and-ddl.md:66	docs/postgres/03-locking/table-locks-and-ddl.md#section[## Further reading].paragraph@66	lesson-paragraph	"- [PostgreSQL docs: Table-Level Locks](https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES),\n  all eight modes and their conflict table\n- [PostgreSQL docs: ALTER TABLE](https://www.postgresql.org/docs/current/sql-altertable.html)\n- [The same lesson on MySQL](/mysql/03-locking/table-locks-and-ddl)"	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/table-locks-and-ddl.md#section[## Further reading].paragraph@29; semantic decisions A1-A10 in audit report
C00212	current	docs/postgres/03-locking/table-locks-and-ddl.md:1	docs/postgres/03-locking/table-locks-and-ddl.md#heading@1	heading	"# Table locks & DDL"	P6	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00213	current	docs/postgres/03-locking/table-locks-and-ddl.md:3	docs/postgres/03-locking/table-locks-and-ddl.md#section[# Table locks & DDL].paragraph@3	lesson-paragraph	"PostgreSQL 18 [documents table-lock modes](https://www.postgresql.org/docs/18/explicit-locking.html#LOCKING-TABLES) for operations on relations. Ordinary SELECT acquires ACCESS SHARE. DROP TABLE, TRUNCATE and many ALTER TABLE forms need ACCESS EXCLUSIVE, which conflicts with every table-lock mode from another transaction. [ALTER TABLE](https://www.postgresql.org/docs/18/sql-altertable.html) specifies exceptions per form. DDL duration is not measured here."	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00214	current	docs/postgres/03-locking/table-locks-and-ddl.md:5	docs/postgres/03-locking/table-locks-and-ddl.md#heading@5	heading	"## The outage, reproduced"	P6	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00215	current	docs/postgres/03-locking/table-locks-and-ddl.md:7	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@7	lesson-paragraph	"A reads accounts inside a transaction and retains ACCESS SHARE. B's ADD COLUMN waits for ACCESS EXCLUSIVE. C's new SELECT then waits behind B's queued request, as the asserted B-to-A and C-to-B edges show:"	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00216	current	docs/postgres/03-locking/table-locks-and-ddl.md:9	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@9	lesson-paragraph	"<!--@include: ./parts/alter-table-outage.md-->"	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00217	current	docs/postgres/03-locking/table-locks-and-ddl.md:11	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@11	lesson-paragraph	"A's COMMIT lets the standalone ALTER complete, and then C's read completes. This schedule demonstrates a queued DDL request delaying a new read. It does not prove that every later query must wait: a transaction that already has the required lock is a different case."	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00218	current	docs/postgres/03-locking/table-locks-and-ddl.md:13	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The outage, reproduced].paragraph@13	lesson-paragraph	"::: warning Bound migration lock waits\nSet a suitable session lock_timeout and handle failure. A timed-out DDL request can still delay later requests while it remains queued.\n:::"	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00219	current	docs/postgres/03-locking/table-locks-and-ddl.md:17	docs/postgres/03-locking/table-locks-and-ddl.md#heading@17	heading	"## The fix: lock_timeout + retry"	P6	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00220	current	docs/postgres/03-locking/table-locks-and-ddl.md:19	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@19	lesson-paragraph	"<!--@include: ./parts/ddl-lock-timeout.md-->"	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00221	current	docs/postgres/03-locking/table-locks-and-ddl.md:21	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@21	lesson-paragraph	"B first waits and gets `55P03`. C is dispatched only after that failure, so its successful read demonstrates recovery after the request leaves the queue, not zero disruption during the wait. After A commits, B retries and the asserted column exists. These are standalone DDL attempts; explicit-transaction error recovery needs rollback or a prior savepoint."	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00222	current	docs/postgres/03-locking/table-locks-and-ddl.md:23	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@23	lesson-paragraph	"The [client-setting contract](https://www.postgresql.org/docs/18/runtime-config-client.html#GUC-LOCK-TIMEOUT) discourages global lock_timeout because it affects every session. It limits each acquisition, not total migration time. Retry success is not guaranteed under continuing contention."	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00223	current	docs/postgres/03-locking/table-locks-and-ddl.md:25	docs/postgres/03-locking/table-locks-and-ddl.md#section[## The fix: lock_timeout + retry].paragraph@25	lesson-paragraph	"As Documented contracts, SET STATISTICS uses SHARE UPDATE EXCLUSIVE, compatible with ordinary reads and writes but conflicting with some maintenance and DDL. [CREATE INDEX](https://www.postgresql.org/docs/18/sql-createindex.html#SQL-CREATEINDEX-CONCURRENTLY) without CONCURRENTLY blocks writes but permits reads. CONCURRENTLY permits concurrent table writes but has extra phases, waits, and failure restrictions; it is not a no-wait promise. These variants are not executed in this chapter. Use the [monitoring lesson](/postgres/03-locking/monitoring-locks) to inspect the actual wait."	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00224	current	docs/postgres/03-locking/table-locks-and-ddl.md:27	docs/postgres/03-locking/table-locks-and-ddl.md#heading@27	heading	"## Further reading"	P6	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00225	current	docs/postgres/03-locking/table-locks-and-ddl.md:29	docs/postgres/03-locking/table-locks-and-ddl.md#section[## Further reading].paragraph@29	lesson-paragraph	"- [PostgreSQL 18: Table-Level Locks](https://www.postgresql.org/docs/18/explicit-locking.html#LOCKING-TABLES)\n- [PostgreSQL 18: ALTER TABLE](https://www.postgresql.org/docs/18/sql-altertable.html)\n- [The same lesson on MySQL](/mysql/03-locking/table-locks-and-ddl)"	P6	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00226	base	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:1	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#heading@1	heading	"# Dead tuples and bloat"	P7	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/dead-tuples-and-bloat.md#heading@1 (docs/postgres/04-mvcc/dead-tuples-and-bloat.md:1); current scoped support applies
C00227	base	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:3	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[# Dead tuples and bloat].paragraph@3	lesson-paragraph	"If [nothing is ever modified in place](/postgres/04-mvcc/row-versions) and nothing is immediately\nremoved, an obvious question follows: where does it all go? Nowhere, is the honest answer. Old\nversions (*dead tuples*) stay right in the table's file, and the file only ever grows. That\ngrowth is bloat, and it isn't a malfunction: it's the rent MVCC pays for non-blocking reads."	P7	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[# Dead tuples and bloat].paragraph@3; semantic decisions A1-A10 in audit report
C00228	base	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:8	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#heading@8	heading	"## One row, four tuples"	P7	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/dead-tuples-and-bloat.md#heading@5 (docs/postgres/04-mvcc/dead-tuples-and-bloat.md:5); current scoped support applies
C00229	base	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:10	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## One row, four tuples].paragraph@10	lesson-paragraph	"<!--@include: ./parts/dead-tuples-and-bloat.md-->"	P7	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## One row, four tuples].paragraph@7 (docs/postgres/04-mvcc/dead-tuples-and-bloat.md:7); current scoped support applies
C00230	base	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:12	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## One row, four tuples].paragraph@12	lesson-paragraph	"Each update stamps the current version's `t_xmax`, writes a fresh copy one slot over, and moves\non. `SELECT` walks the chain and returns exactly one row; the page holds the row's entire\nbiography."	P7	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## One row, four tuples].paragraph@7; docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## One row, four tuples].paragraph@9; semantic decisions A1-A10 in audit report
C00231	base	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:16	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#heading@16	heading	"## The same thing, at file scale"	P7	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/dead-tuples-and-bloat.md#heading@11 (docs/postgres/04-mvcc/dead-tuples-and-bloat.md:11); current scoped support applies
C00232	base	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:18	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## The same thing, at file scale].paragraph@18	lesson-paragraph	"The same story plays out page by page, and three facts on it are worth reading twice. An UPDATE\nof *every* row temporarily doubles the table, so a \"harmless\" backfill migration like\n`UPDATE users SET new_column = ...` rewrites every tuple: plan for the disk, and for the\n[WAL and vacuum work](/postgres/04-mvcc/vacuum) that follows. Then the `DELETE` frees nothing:\nzero live rows, nine pages still on disk. That space isn't lost (VACUUM will make it reusable),\nbut it is not returned to the operating system. Which is the third fact: the file never shrinks on\nits own, and that's exactly where the [next lesson](/postgres/04-mvcc/vacuum) picks up."	P7	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## The same thing, at file scale].paragraph@13; docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## The same thing, at file scale].paragraph@15; semantic decisions A1-A10 in audit report
C00233	base	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:26	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## The same thing, at file scale].paragraph@26	lesson-paragraph	"None of this is pathological. A steady-state churn of dead tuples, continuously recycled by\nautovacuum, is MVCC working as designed. Bloat becomes a problem only when dead tuples accumulate\nfaster than vacuum can reclaim them, and the usual culprit is a\n[long-running transaction](/postgres/04-mvcc/long-transactions) holding an old snapshot open. So\nupdate-heavy tables live best with room to recycle: prefer many small transactions over giant\n`UPDATE`-everything sweeps, and let autovacuum keep pace. To know whether it is keeping pace, watch\n`n_dead_tup` in\n[`pg_stat_user_tables`](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-ALL-TABLES-VIEW).\nThe production chapter builds monitoring on it."	P7	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## The same thing, at file scale].paragraph@13; docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## The same thing, at file scale].paragraph@15; semantic decisions A1-A10 in audit report
C00234	base	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:36	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#heading@36	heading	"## Further reading"	P7	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/dead-tuples-and-bloat.md#heading@17 (docs/postgres/04-mvcc/dead-tuples-and-bloat.md:17); current scoped support applies
C00235	base	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:38	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## Further reading].paragraph@38	lesson-paragraph	"- [PostgreSQL docs: Vacuuming Basics](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-BASICS)\n- [PostgreSQL docs: pageinspect](https://www.postgresql.org/docs/current/pageinspect.html)\n- [The same lesson on MySQL](/mysql/04-mvcc/history-list-length)"	P7	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## Further reading].paragraph@19; semantic decisions A1-A10 in audit report
C00236	current	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:1	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#heading@1	heading	"# Dead tuples and bloat"	P7	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00237	current	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:3	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[# Dead tuples and bloat].paragraph@3	lesson-paragraph	"UPDATE creates a new tuple version and DELETE makes a version no longer live. Old versions are not necessarily removed immediately. Reusable space and obsolete versions can remain in the heap file; file growth depends on reuse, pruning, vacuum, fillfactor and workload, not just the number of writes. [Routine vacuuming](https://www.postgresql.org/docs/18/routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY) documents the maintenance boundary."	P7	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00238	current	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:5	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#heading@5	heading	"## One row, four tuples"	P7	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00239	current	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:7	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## One row, four tuples].paragraph@7	lesson-paragraph	"<!--@include: ./parts/dead-tuples-and-bloat.md-->"	P7	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00240	current	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:9	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## One row, four tuples].paragraph@9	lesson-paragraph	"For counters, the asserted page contains four tuple versions after three updates, while the ordinary SELECT asserts one live value, 3. For bloat, the asserted heap size grows from five to nine 8 kB pages after updating all 1,000 rows. DELETE leaves zero live rows and nine pages at the next observation. These particular sizes are setup-dependent, not a universal doubling ratio or a promise that a file can never shrink."	P7	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00241	current	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:11	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#heading@11	heading	"## The same thing, at file scale"	P7	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00242	current	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:13	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## The same thing, at file scale].paragraph@13	lesson-paragraph	"Standard VACUUM can make obsolete space reusable, and can truncate empty trailing pages when its locking conditions permit. [VACUUM FULL](/postgres/04-mvcc/vacuum) rewrites the table to compact it. The [long-transaction schedule](/postgres/04-mvcc/long-transactions) demonstrates an old snapshot preventing reclamation of the inspected versions, not the only possible cause of bloat."	P7	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00243	current	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:15	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## The same thing, at file scale].paragraph@15	lesson-paragraph	"[`pg_stat_user_tables.n_dead_tup`](https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-ALL-TABLES-VIEW) is an estimate, not an exact physical tuple count or a byte-size measurement. Combine it with file size and maintenance observations before diagnosing growth. No workload or performance benchmark is claimed here."	P7	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00244	current	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:17	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#heading@17	heading	"## Further reading"	P7	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00245	current	docs/postgres/04-mvcc/dead-tuples-and-bloat.md:19	docs/postgres/04-mvcc/dead-tuples-and-bloat.md#section[## Further reading].paragraph@19	lesson-paragraph	"- [PostgreSQL 18: Recovering Disk Space](https://www.postgresql.org/docs/18/routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY)\n- [PostgreSQL 18: pageinspect](https://www.postgresql.org/docs/18/pageinspect.html)\n- [The same lesson on MySQL](/mysql/04-mvcc/history-list-length)"	P7	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00246	base	docs/postgres/04-mvcc/long-transactions.md:1	docs/postgres/04-mvcc/long-transactions.md#heading@1	heading	"# Long transactions block VACUUM"	P8	Baseline overbroad short claim; its original text is retained as audit history, not accepted support		Unsupported as stated; replacement is limited to the observed schedule and assertions identified by C00260	Narrowed at docs/postgres/04-mvcc/long-transactions.md#heading@3 (docs/postgres/04-mvcc/long-transactions.md:3); C00260 records exact replacement text and support; no general exclusivity, fairness or all-work maintenance guarantee
C00247	base	docs/postgres/04-mvcc/long-transactions.md:3	docs/postgres/04-mvcc/long-transactions.md#section[# Long transactions block VACUUM].paragraph@3	lesson-paragraph	"Everything in this chapter converges here. Old row versions must be kept as long as any snapshot\nmight still read them, so one forgotten transaction, holding one old snapshot, pins garbage\ncollection for the *whole database*. Not only the tables it read: every table, because PostgreSQL\ntracks \"this backend's snapshot needs xids from here back\", not which rows it will touch."	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/long-transactions.md#section[# Tuple retention under an old snapshot].paragraph@5; semantic decisions A1-A10 in audit report
C00248	base	docs/postgres/04-mvcc/long-transactions.md:8	docs/postgres/04-mvcc/long-transactions.md#heading@8	heading	"## VACUUM ran, cleaned nothing"	P8	Baseline overbroad short claim; its original text is retained as audit history, not accepted support		Unsupported as stated; replacement is limited to the observed schedule and assertions identified by C00262	Narrowed at docs/postgres/04-mvcc/long-transactions.md#heading@9 (docs/postgres/04-mvcc/long-transactions.md:9); C00262 records exact replacement text and support; no general exclusivity, fairness or all-work maintenance guarantee
C00249	base	docs/postgres/04-mvcc/long-transactions.md:10	docs/postgres/04-mvcc/long-transactions.md#section[## VACUUM ran, cleaned nothing].paragraph@10	lesson-paragraph	"<!--@include: ./parts/long-transactions.md-->"	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/04-mvcc/long-transactions.md#section[## VACUUM leaves the inspected tuple fields unchanged].paragraph@11 (docs/postgres/04-mvcc/long-transactions.md:11); current scoped support applies
C00250	base	docs/postgres/04-mvcc/long-transactions.md:12	docs/postgres/04-mvcc/long-transactions.md#section[## VACUUM ran, cleaned nothing].paragraph@12	lesson-paragraph	"The first VACUUM is the quiet failure mode: it succeeds. No error, no warning in your terminal,\nand the heap page is byte-for-byte unchanged, because the manual's rule is that\n[\"the row version must not be deleted while it is still potentially visible to other transactions\"](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY),\nand A's Repeatable Read snapshot, taken before all three updates, can still see every one of them\n(the scenario proves it: A still reads `'new'`). The instant A commits, the identical command\nclears the page."	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/long-transactions.md#section[## VACUUM leaves the inspected tuple fields unchanged].paragraph@11; docs/postgres/04-mvcc/long-transactions.md#section[## VACUUM leaves the inspected tuple fields unchanged].paragraph@13; docs/postgres/04-mvcc/long-transactions.md#section[## VACUUM leaves the inspected tuple fields unchanged].paragraph@15; semantic decisions A1-A10 in audit report
C00251	base	docs/postgres/04-mvcc/long-transactions.md:19	docs/postgres/04-mvcc/long-transactions.md#section[## VACUUM ran, cleaned nothing].paragraph@19	lesson-paragraph	"Autovacuum hits the same wall. A dashboard that shows autovacuum running on schedule can sit right\nnext to a table that's ballooning, the vacuums are running and *keeping nothing*, while every\nUPDATE adds another [dead tuple](/postgres/04-mvcc/dead-tuples-and-bloat) behind the pinned horizon."	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/long-transactions.md#section[## VACUUM leaves the inspected tuple fields unchanged].paragraph@11; docs/postgres/04-mvcc/long-transactions.md#section[## VACUUM leaves the inspected tuple fields unchanged].paragraph@13; docs/postgres/04-mvcc/long-transactions.md#section[## VACUUM leaves the inspected tuple fields unchanged].paragraph@15; semantic decisions A1-A10 in audit report
C00252	base	docs/postgres/04-mvcc/long-transactions.md:23	docs/postgres/04-mvcc/long-transactions.md#heading@23	heading	"## Spotting the offender"	P8	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/long-transactions.md#heading@17 (docs/postgres/04-mvcc/long-transactions.md:17); current scoped support applies
C00253	base	docs/postgres/04-mvcc/long-transactions.md:25	docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@25	lesson-paragraph	"The horizon is visible in `pg_stat_activity.backend_xmin`, the oldest xid each backend's snapshot\nstill needs. The classic triage query (illustrative here; the production chapter turns it into\nmonitoring):"	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@19; docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@21; docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@30; docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@32; semantic decisions A1-A10 in audit report
C00254	base	docs/postgres/04-mvcc/long-transactions.md:29	docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@29	lesson-paragraph	"```sql\nSELECT pid, state, application_name,\n       age(backend_xmin) AS snapshot_age_xids,\n       now() - xact_start AS tx_duration\nFROM pg_stat_activity\nWHERE backend_xmin IS NOT NULL\nORDER BY age(backend_xmin) DESC;\n```"	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Retained at docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@21 (docs/postgres/04-mvcc/long-transactions.md:21); current scoped support applies
C00255	base	docs/postgres/04-mvcc/long-transactions.md:38	docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@38	lesson-paragraph	"The usual suspects: an app that did `BEGIN` and went idle\n(`state = 'idle in transaction'`, the same villain as in the\n[DDL outage](/postgres/03-locking/table-locks-and-ddl)), a many-hour analytics query against the\nprimary, a stuck migration. Guardrails exist for each:"	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@19; docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@21; docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@30; docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@32; semantic decisions A1-A10 in audit report
C00256	base	docs/postgres/04-mvcc/long-transactions.md:43	docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@43	lesson-paragraph	"- [`idle_in_transaction_session_timeout`](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-IDLE-IN-TRANSACTION-SESSION-TIMEOUT):\n  kills sessions that hold a transaction open while doing nothing;\n- [`transaction_timeout`](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-TRANSACTION-TIMEOUT)\n  (PostgreSQL 17+): a hard ceiling on total transaction duration;\n- [`statement_timeout`](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-STATEMENT-TIMEOUT):\n  bounds any single query."	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@19; docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@21; docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@30; docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@32; semantic decisions A1-A10 in audit report
C00257	base	docs/postgres/04-mvcc/long-transactions.md:50	docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@50	lesson-paragraph	"The lesson underneath all three is that a long transaction is a database-wide tax, even when it's\nread-only and touches one tiny table. The snapshot is what's expensive, not the query. The cost\nis the time you hold one open. And the failure is silent: VACUUM and autovacuum degrade to no-ops\nbehind an old snapshot, invisible until the bloat itself becomes visible. So keep transactions\nshort by design and set `idle_in_transaction_session_timeout` as a seatbelt; chapter 8 builds the\n[alerting version of the query above](/postgres/08-production/long-and-idle-transactions)."	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@19; docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@21; docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@30; docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@32; semantic decisions A1-A10 in audit report
C00258	base	docs/postgres/04-mvcc/long-transactions.md:57	docs/postgres/04-mvcc/long-transactions.md#heading@57	heading	"## Further reading"	P8	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/long-transactions.md#heading@34 (docs/postgres/04-mvcc/long-transactions.md:34); current scoped support applies
C00259	base	docs/postgres/04-mvcc/long-transactions.md:59	docs/postgres/04-mvcc/long-transactions.md#section[## Further reading].paragraph@59	lesson-paragraph	"- [PostgreSQL docs: Recovering Disk Space](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY)\n- [PostgreSQL docs: `pg_stat_activity`](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW)\n- [The same lesson on MySQL](/mysql/04-mvcc/history-list-length)"	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/long-transactions.md#section[## Further reading].paragraph@36; semantic decisions A1-A10 in audit report
C00260	current	docs/postgres/04-mvcc/long-transactions.md:3	docs/postgres/04-mvcc/long-transactions.md#heading@3	heading	"# Tuple retention under an old snapshot"	P8	PostgreSQL 18.6; A retains an old Repeatable Read snapshot over the inspected jobs row		D: scenarios/postgres/04-mvcc/long-transactions.ts:15-59; assertions compare selected tuple fields before/after VACUUM, retained old value and reclamation after A commits; no all-work VACUUM blocking claim	Resolved: narrowed short claim to the explicitly supported observation; legacy fragment retained only as a non-visible anchor ID
C00261	current	docs/postgres/04-mvcc/long-transactions.md:5	docs/postgres/04-mvcc/long-transactions.md#section[# Tuple retention under an old snapshot].paragraph@5	lesson-paragraph	"An old snapshot can prevent reclamation of obsolete versions. PostgreSQL 18's [vacuum contract](https://www.postgresql.org/docs/18/routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY) preserves versions that might still be visible to another transaction. This schedule holds a Repeatable Read snapshot over three updates to one jobs row."	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00262	current	docs/postgres/04-mvcc/long-transactions.md:9	docs/postgres/04-mvcc/long-transactions.md#heading@9	heading	"## VACUUM leaves the inspected tuple fields unchanged"	P8	PostgreSQL 18.6; first VACUUM with A retaining its old Repeatable Read snapshot; only lp, t_xmin, t_xmax and t_ctid are compared		D: scenarios/postgres/04-mvcc/long-transactions.ts:25-43; eq(before, chain) and eq(after, chain) compare selected tuple fields, not all page bytes or all VACUUM work	Resolved: narrowed short claim to the explicitly supported observation; legacy fragment retained only as a non-visible anchor ID
C00263	current	docs/postgres/04-mvcc/long-transactions.md:11	docs/postgres/04-mvcc/long-transactions.md#section[## VACUUM leaves the inspected tuple fields unchanged].paragraph@11	lesson-paragraph	"<!--@include: ./parts/long-transactions.md-->"	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00264	current	docs/postgres/04-mvcc/long-transactions.md:13	docs/postgres/04-mvcc/long-transactions.md#section[## VACUUM leaves the inspected tuple fields unchanged].paragraph@13	lesson-paragraph	"The first VACUUM completes but the inspected `lp`, `t_xmin`, `t_xmax` and `t_ctid` fields remain unchanged. This is not a byte-for-byte comparison of the whole page, nor proof that VACUUM did no other work. A still reads only the original status `new`; its snapshot does not see each intermediate version. After A commits, the second VACUUM's asserted page fields show one redirect, two unused slots and the current tuple."	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00265	current	docs/postgres/04-mvcc/long-transactions.md:15	docs/postgres/04-mvcc/long-transactions.md#section[## VACUUM leaves the inspected tuple fields unchanged].paragraph@15	lesson-paragraph	"† A retained snapshot's removal horizon can constrain reclamation in other tables of the same database, even tables not read by that transaction. This inference follows PostgreSQL 18's [backend_xmin horizon](https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW) and vacuum's visibility requirement. The single-table transcript does not execute this cross-table guarantee. It does not imply all VACUUM or autovacuum work stops, or that every long transaction holds a transaction-wide old snapshot."	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		E: explicitly marked inference; derivation and limits in this paragraph and lesson	Resolved: scoped current E: explicitly marked inference; derivation and limits in this paragraph and lesson
C00266	current	docs/postgres/04-mvcc/long-transactions.md:17	docs/postgres/04-mvcc/long-transactions.md#heading@17	heading	"## Spotting the offender"	P8	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00267	current	docs/postgres/04-mvcc/long-transactions.md:19	docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@19	lesson-paragraph	"This diagnostic query is illustrative; its columns are [Documented contracts](https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW), not a new Scenario result:"	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00268	current	docs/postgres/04-mvcc/long-transactions.md:21	docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@21	lesson-paragraph	"```sql\nSELECT pid, state, application_name,\n       age(backend_xmin) AS snapshot_age_xids,\n       now() - xact_start AS tx_duration\nFROM pg_stat_activity\nWHERE backend_xmin IS NOT NULL\nORDER BY age(backend_xmin) DESC;\n```"	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00269	current	docs/postgres/04-mvcc/long-transactions.md:30	docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@30	lesson-paragraph	"Inspect application state as well as age. An idle Read Committed transaction does not necessarily retain a Repeatable Read snapshot. Replication slots and prepared transactions can also constrain maintenance. Monitoring other sessions' details requires appropriate privileges."	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00270	current	docs/postgres/04-mvcc/long-transactions.md:32	docs/postgres/04-mvcc/long-transactions.md#section[## Spotting the offender].paragraph@32	lesson-paragraph	"The PostgreSQL 18 [client-setting contracts](https://www.postgresql.org/docs/18/runtime-config-client.html) document idle_in_transaction_session_timeout for idle open transactions, transaction_timeout for session transaction duration (introduced in 17, excluding prepared transactions), and statement_timeout for individual statement duration. Defaults are disabled for these timeouts; their interactions and suitable limits need application decisions. No timeout execution occurs in this chapter. [Chapter 8](/postgres/08-production/long-and-idle-transactions) supplies the operational follow-up."	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00271	current	docs/postgres/04-mvcc/long-transactions.md:34	docs/postgres/04-mvcc/long-transactions.md#heading@34	heading	"## Further reading"	P8	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00272	current	docs/postgres/04-mvcc/long-transactions.md:36	docs/postgres/04-mvcc/long-transactions.md#section[## Further reading].paragraph@36	lesson-paragraph	"- [PostgreSQL 18: Recovering Disk Space](https://www.postgresql.org/docs/18/routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY)\n- [PostgreSQL 18: pg_stat_activity](https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW)\n- [The same lesson on MySQL](/mysql/04-mvcc/history-list-length)"	P8	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00273	base	docs/postgres/04-mvcc/row-versions.md:1	docs/postgres/04-mvcc/row-versions.md#heading@1	heading	"# Row versions: xmin, xmax, ctid"	P9	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/row-versions.md#heading@1 (docs/postgres/04-mvcc/row-versions.md:1); current scoped support applies
C00274	base	docs/postgres/04-mvcc/row-versions.md:3	docs/postgres/04-mvcc/row-versions.md#section[# Row versions: xmin, xmax, ctid].paragraph@3	lesson-paragraph	"Chapters 2 and 3 kept saying \"snapshot\" and \"row version\". This chapter opens the hood. The\ncore trick of MVCC is that PostgreSQL never modifies a row in place: every UPDATE writes a\ncomplete new copy, every DELETE only stamps the old one. That's why\n[reading never blocks writing and writing never blocks reading](https://www.postgresql.org/docs/current/mvcc-intro.html):\nreaders and writers are literally looking at different physical tuples."	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/row-versions.md#section[# Row versions: xmin, xmax, ctid].paragraph@3; semantic decisions A1-A10 in audit report
C00275	base	docs/postgres/04-mvcc/row-versions.md:9	docs/postgres/04-mvcc/row-versions.md#section[# Row versions: xmin, xmax, ctid].paragraph@9	lesson-paragraph	"Three [hidden system columns](https://www.postgresql.org/docs/current/ddl-system-columns.html)\ntell each version's story:"	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/row-versions.md#section[# Row versions: xmin, xmax, ctid].paragraph@3; semantic decisions A1-A10 in audit report
C00276	base	docs/postgres/04-mvcc/row-versions.md:12	docs/postgres/04-mvcc/row-versions.md#table[1].row[column].column[column]	table-cell	"column"	P9	PostgreSQL 18; row subject column; column column; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/04-mvcc/row-versions.md#table[1].row[column].column[column] (docs/postgres/04-mvcc/row-versions.md:5); current scoped support applies
C00277	base	docs/postgres/04-mvcc/row-versions.md:12	docs/postgres/04-mvcc/row-versions.md#table[1].row[column].column[meaning]	table-cell	"meaning"	P9	PostgreSQL 18; row subject column; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/04-mvcc/row-versions.md#table[1].row[column].column[meaning] (docs/postgres/04-mvcc/row-versions.md:5); current scoped support applies
C00278	base	docs/postgres/04-mvcc/row-versions.md:14	docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmin`].column[column]	table-cell	"`xmin`"	P9	PostgreSQL 18; row subject `xmin`; column column; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmin`].column[column] (docs/postgres/04-mvcc/row-versions.md:7); current scoped support applies
C00279	base	docs/postgres/04-mvcc/row-versions.md:14	docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmin`].column[meaning]	table-cell	"the transaction id (xid) that **created** this version"	P9	PostgreSQL 18; row subject `xmin`; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/row-versions.md#table[1].row[column].column[column]; docs/postgres/04-mvcc/row-versions.md#table[1].row[column].column[meaning]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmin`].column[column]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmin`].column[meaning]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmax`].column[column]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmax`].column[meaning]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`ctid`].column[column]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`ctid`].column[meaning]; semantic decisions A1-A10 in audit report
C00280	base	docs/postgres/04-mvcc/row-versions.md:15	docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmax`].column[column]	table-cell	"`xmax`"	P9	PostgreSQL 18; row subject `xmax`; column column; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmax`].column[column] (docs/postgres/04-mvcc/row-versions.md:8); current scoped support applies
C00281	base	docs/postgres/04-mvcc/row-versions.md:15	docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmax`].column[meaning]	table-cell	"the xid that **deleted or replaced** it, `0` while nobody has"	P9	PostgreSQL 18; row subject `xmax`; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/row-versions.md#table[1].row[column].column[column]; docs/postgres/04-mvcc/row-versions.md#table[1].row[column].column[meaning]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmin`].column[column]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmin`].column[meaning]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmax`].column[column]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmax`].column[meaning]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`ctid`].column[column]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`ctid`].column[meaning]; semantic decisions A1-A10 in audit report
C00282	base	docs/postgres/04-mvcc/row-versions.md:16	docs/postgres/04-mvcc/row-versions.md#table[1].row[`ctid`].column[column]	table-cell	"`ctid`"	P9	PostgreSQL 18; row subject `ctid`; column column; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/04-mvcc/row-versions.md#table[1].row[`ctid`].column[column] (docs/postgres/04-mvcc/row-versions.md:9); current scoped support applies
C00283	base	docs/postgres/04-mvcc/row-versions.md:16	docs/postgres/04-mvcc/row-versions.md#table[1].row[`ctid`].column[meaning]	table-cell	"its physical address: `(page, slot)` within the table file"	P9	PostgreSQL 18; row subject `ctid`; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/row-versions.md#table[1].row[column].column[column]; docs/postgres/04-mvcc/row-versions.md#table[1].row[column].column[meaning]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmin`].column[column]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmin`].column[meaning]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmax`].column[column]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmax`].column[meaning]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`ctid`].column[column]; docs/postgres/04-mvcc/row-versions.md#table[1].row[`ctid`].column[meaning]; semantic decisions A1-A10 in audit report
C00284	base	docs/postgres/04-mvcc/row-versions.md:18	docs/postgres/04-mvcc/row-versions.md#heading@18	heading	"## Watching an UPDATE make a copy"	P9	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/row-versions.md#heading@11 (docs/postgres/04-mvcc/row-versions.md:11); current scoped support applies
C00285	base	docs/postgres/04-mvcc/row-versions.md:20	docs/postgres/04-mvcc/row-versions.md#section[## Watching an UPDATE make a copy].paragraph@20	lesson-paragraph	"<!--@include: ./parts/row-versions.md-->"	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/04-mvcc/row-versions.md#section[## Watching an UPDATE make a copy].paragraph@13 (docs/postgres/04-mvcc/row-versions.md:13); current scoped support applies
C00286	base	docs/postgres/04-mvcc/row-versions.md:22	docs/postgres/04-mvcc/row-versions.md#section[## Watching an UPDATE make a copy].paragraph@22	lesson-paragraph	"The subtle beat in the middle: after A's update, B's row suddenly shows a non-zero `xmax` while\nstill reading the old balance. B is looking at the *old version*, and the old version now carries\nthe xid of the transaction that replaced it. The manual notes that a visible row version can have\nnon-zero `xmax`\n([\"that usually indicates that the deleting transaction hasn't committed yet, or that an attempted deletion was rolled back\"](https://www.postgresql.org/docs/current/ddl-system-columns.html)),\nand B's case is the third flavor: the deletion committed, but B's snapshot predates it."	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/row-versions.md#section[## Watching an UPDATE make a copy].paragraph@13; docs/postgres/04-mvcc/row-versions.md#section[## Watching an UPDATE make a copy].paragraph@15; semantic decisions A1-A10 in audit report
C00287	base	docs/postgres/04-mvcc/row-versions.md:29	docs/postgres/04-mvcc/row-versions.md#section[## Watching an UPDATE make a copy].paragraph@29	lesson-paragraph	"Then `heap_page_items` (from the\n[pageinspect extension](https://www.postgresql.org/docs/current/pageinspect.html)) drops all\npretense: both versions sit on page 0, and the old tuple's `t_ctid` points at its successor\n`(0,2)`, the version chain PostgreSQL walks to find the current row."	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/row-versions.md#section[## Watching an UPDATE make a copy].paragraph@13; docs/postgres/04-mvcc/row-versions.md#section[## Watching an UPDATE make a copy].paragraph@15; semantic decisions A1-A10 in audit report
C00288	base	docs/postgres/04-mvcc/row-versions.md:34	docs/postgres/04-mvcc/row-versions.md#heading@34	heading	"## DELETE is a stamp, not an eraser"	P9	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/row-versions.md#heading@17 (docs/postgres/04-mvcc/row-versions.md:17); current scoped support applies
C00289	base	docs/postgres/04-mvcc/row-versions.md:36	docs/postgres/04-mvcc/row-versions.md#section[## DELETE is a stamp, not an eraser].paragraph@36	lesson-paragraph	"`SELECT` finds nothing; the disk still holds every byte. In PostgreSQL,\n[\"an UPDATE or DELETE of a row does not immediately remove the old version of the row\"](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY),\nremoval is [VACUUM's](/postgres/04-mvcc/vacuum) job, and the [bloat lesson](/postgres/04-mvcc/dead-tuples-and-bloat)\nshows what piles up in the meantime."	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/row-versions.md#section[## DELETE is a stamp, not an eraser].paragraph@19; docs/postgres/04-mvcc/row-versions.md#section[## DELETE is a stamp, not an eraser].paragraph@21; semantic decisions A1-A10 in audit report
C00290	base	docs/postgres/04-mvcc/row-versions.md:41	docs/postgres/04-mvcc/row-versions.md#section[## DELETE is a stamp, not an eraser].paragraph@41	lesson-paragraph	"So the two write verbs reduce to the same primitive: an UPDATE writes a fresh version and stamps\nthe old one's `xmax`, a DELETE stamps `xmax` and stops there. Nothing is ever changed in place,\nand nothing is removed on the spot. Those `xmin`/`xmax` stamps are how PostgreSQL knows which\ntransaction created and killed each version, which is the raw material the\n[snapshot lesson](/postgres/04-mvcc/snapshots-under-the-hood) turns into a visibility rule. The\n`ctid` is more slippery: it changes on every update and again on `VACUUM FULL`, so never store it\nas a row identifier. That's what a primary key is for. And this is the same mechanism behind two\nthings you already met: [`SELECT FOR UPDATE` writes to disk](/postgres/03-locking/row-locks) because\nrow locks live in the row header, and an update-heavy table needs VACUUM to stay small."	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/row-versions.md#section[## DELETE is a stamp, not an eraser].paragraph@19; docs/postgres/04-mvcc/row-versions.md#section[## DELETE is a stamp, not an eraser].paragraph@21; semantic decisions A1-A10 in audit report
C00291	base	docs/postgres/04-mvcc/row-versions.md:51	docs/postgres/04-mvcc/row-versions.md#heading@51	heading	"## Further reading"	P9	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/row-versions.md#heading@23 (docs/postgres/04-mvcc/row-versions.md:23); current scoped support applies
C00292	base	docs/postgres/04-mvcc/row-versions.md:53	docs/postgres/04-mvcc/row-versions.md#section[## Further reading].paragraph@53	lesson-paragraph	"- [PostgreSQL docs: System Columns](https://www.postgresql.org/docs/current/ddl-system-columns.html)\n- [PostgreSQL docs: Introduction to MVCC](https://www.postgresql.org/docs/current/mvcc-intro.html)\n- [PostgreSQL docs: pageinspect](https://www.postgresql.org/docs/current/pageinspect.html)\n- [The same lesson on MySQL](/mysql/04-mvcc/undo-logs)"	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/row-versions.md#section[## Further reading].paragraph@25; semantic decisions A1-A10 in audit report
C00293	current	docs/postgres/04-mvcc/row-versions.md:1	docs/postgres/04-mvcc/row-versions.md#heading@1	heading	"# Row versions: xmin, xmax, ctid"	P9	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00294	current	docs/postgres/04-mvcc/row-versions.md:3	docs/postgres/04-mvcc/row-versions.md#section[# Row versions: xmin, xmax, ctid].paragraph@3	lesson-paragraph	"PostgreSQL 18's [system-column contract](https://www.postgresql.org/docs/18/ddl-system-columns.html) distinguishes a logical row from its physical tuple versions. UPDATE creates a new version; the old version can remain while snapshots need it. DELETE does not immediately remove the old version. These MVCC rules do not eliminate table-lock or locking-read waits."	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00295	current	docs/postgres/04-mvcc/row-versions.md:5	docs/postgres/04-mvcc/row-versions.md#table[1].row[column].column[column]	table-cell	"column"	P9	PostgreSQL 18; row subject column; column column; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00296	current	docs/postgres/04-mvcc/row-versions.md:5	docs/postgres/04-mvcc/row-versions.md#table[1].row[column].column[meaning]	table-cell	"meaning"	P9	PostgreSQL 18; row subject column; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00297	current	docs/postgres/04-mvcc/row-versions.md:7	docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmin`].column[column]	table-cell	"`xmin`"	P9	PostgreSQL 18; row subject `xmin`; column column; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00298	current	docs/postgres/04-mvcc/row-versions.md:7	docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmin`].column[meaning]	table-cell	"xid of the transaction that inserted this tuple version"	P9	PostgreSQL 18; row subject `xmin`; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00299	current	docs/postgres/04-mvcc/row-versions.md:8	docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmax`].column[column]	table-cell	"`xmax`"	P9	PostgreSQL 18; row subject `xmax`; column column; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00300	current	docs/postgres/04-mvcc/row-versions.md:8	docs/postgres/04-mvcc/row-versions.md#table[1].row[`xmax`].column[meaning]	table-cell	"deleting transaction's xid, or zero for an undeleted version; a nonzero value can belong to a visible version. Row locking and MultiXacts also use the tuple header, so do not use a nonzero value alone as proof of deletion."	P9	PostgreSQL 18; row subject `xmax`; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00301	current	docs/postgres/04-mvcc/row-versions.md:9	docs/postgres/04-mvcc/row-versions.md#table[1].row[`ctid`].column[column]	table-cell	"`ctid`"	P9	PostgreSQL 18; row subject `ctid`; column column; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00302	current	docs/postgres/04-mvcc/row-versions.md:9	docs/postgres/04-mvcc/row-versions.md#table[1].row[`ctid`].column[meaning]	table-cell	"physical tuple address `(page, slot)`; changes with UPDATE and may change with VACUUM FULL"	P9	PostgreSQL 18; row subject `ctid`; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00303	current	docs/postgres/04-mvcc/row-versions.md:11	docs/postgres/04-mvcc/row-versions.md#heading@11	heading	"## Watching an UPDATE make a copy"	P9	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00304	current	docs/postgres/04-mvcc/row-versions.md:13	docs/postgres/04-mvcc/row-versions.md#section[## Watching an UPDATE make a copy].paragraph@13	lesson-paragraph	"<!--@include: ./parts/row-versions.md-->"	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00305	current	docs/postgres/04-mvcc/row-versions.md:15	docs/postgres/04-mvcc/row-versions.md#section[## Watching an UPDATE make a copy].paragraph@15	lesson-paragraph	"A's update returns balance 200 at `(0,2)`. B's older Repeatable Read snapshot still returns balance 100 at `(0,1)` with the updater's xid in `xmax`. After B commits, its new read returns the new version. The asserted pageinspect fields show both tuples and the old tuple's successor pointer. This small page layout is demonstrated, not a guarantee of consecutive slots for every update."	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00306	current	docs/postgres/04-mvcc/row-versions.md:17	docs/postgres/04-mvcc/row-versions.md#heading@17	heading	"## DELETE is a stamp, not an eraser"	P9	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00307	current	docs/postgres/04-mvcc/row-versions.md:19	docs/postgres/04-mvcc/row-versions.md#section[## DELETE is a stamp, not an eraser].paragraph@19	lesson-paragraph	"The DELETE's returned xid and the inspected page fields are asserted alongside zero live rows. Both tuple bodies still appear in this observation. Later pruning or VACUUM may reclaim them. In-place header changes do occur: visibility hints and row locks are examples, so “nothing ever changes in place” would be too broad. [HOT](https://www.postgresql.org/docs/18/storage-hot.html) can reuse space during ordinary access when its conditions permit."	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00308	current	docs/postgres/04-mvcc/row-versions.md:21	docs/postgres/04-mvcc/row-versions.md#section[## DELETE is a stamp, not an eraser].paragraph@21	lesson-paragraph	"Use a primary key as the stable logical identifier, not ctid. The [snapshot lesson](/postgres/04-mvcc/snapshots-under-the-hood) relates versions to visibility, and [VACUUM](/postgres/04-mvcc/vacuum) shows reclamation. Row-lock encoding and MultiXact members are documented by the [transaction-information functions](https://www.postgresql.org/docs/18/functions-info.html#FUNCTIONS-PG-SNAPSHOT); this schedule does not execute every encoding."	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00309	current	docs/postgres/04-mvcc/row-versions.md:23	docs/postgres/04-mvcc/row-versions.md#heading@23	heading	"## Further reading"	P9	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00310	current	docs/postgres/04-mvcc/row-versions.md:25	docs/postgres/04-mvcc/row-versions.md#section[## Further reading].paragraph@25	lesson-paragraph	"- [PostgreSQL 18: System Columns](https://www.postgresql.org/docs/18/ddl-system-columns.html)\n- [PostgreSQL 18: pageinspect](https://www.postgresql.org/docs/18/pageinspect.html)\n- [The same lesson on MySQL](/mysql/04-mvcc/undo-logs)"	P9	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00311	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:1	docs/postgres/04-mvcc/snapshots-under-the-hood.md#heading@1	heading	"# Snapshots under the hood"	P10	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/snapshots-under-the-hood.md#heading@1 (docs/postgres/04-mvcc/snapshots-under-the-hood.md:1); current scoped support applies
C00312	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:3	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[# Snapshots under the hood].paragraph@3	lesson-paragraph	"[Chapter 2](/postgres/02-isolation/snapshots-and-the-four-levels) treated the snapshot as a black\nbox: \"a frozen view of committed data\". Here's the box, opened. A snapshot is three numbers, and\nevery visibility decision (every row you do or don't see) is arithmetic on them plus the\n`xmin`/`xmax` stamps from the [previous lesson](/postgres/04-mvcc/row-versions)."	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[# Snapshots under the hood].paragraph@3; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[# Snapshots under the hood].paragraph@11; semantic decisions A1-A10 in audit report
C00313	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:8	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[component].column[component]	table-cell	"component"	P10	PostgreSQL 18; row subject component; column component; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[component].column[component] (docs/postgres/04-mvcc/snapshots-under-the-hood.md:5); current scoped support applies
C00314	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:8	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[component].column[meaning]	table-cell	"meaning"	P10	PostgreSQL 18; row subject component; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[component].column[meaning] (docs/postgres/04-mvcc/snapshots-under-the-hood.md:5); current scoped support applies
C00315	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:10	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmin`].column[component]	table-cell	"`xmin`"	P10	PostgreSQL 18; row subject `xmin`; column component; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmin`].column[component] (docs/postgres/04-mvcc/snapshots-under-the-hood.md:7); current scoped support applies
C00316	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:10	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmin`].column[meaning]	table-cell	"the oldest xid still running when the snapshot was taken, everything below is settled (committed or rolled back)"	P10	PostgreSQL 18; row subject `xmin`; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[component].column[component]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[component].column[meaning]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmin`].column[component]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmin`].column[meaning]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmax`].column[component]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmax`].column[meaning]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xip`].column[component]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xip`].column[meaning]; semantic decisions A1-A10 in audit report
C00317	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:11	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmax`].column[component]	table-cell	"`xmax`"	P10	PostgreSQL 18; row subject `xmax`; column component; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmax`].column[component] (docs/postgres/04-mvcc/snapshots-under-the-hood.md:8); current scoped support applies
C00318	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:11	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmax`].column[meaning]	table-cell	"one **past** the highest *completed* xid, everything at or above hadn't finished, so it's invisible"	P10	PostgreSQL 18; row subject `xmax`; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[component].column[component]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[component].column[meaning]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmin`].column[component]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmin`].column[meaning]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmax`].column[component]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmax`].column[meaning]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xip`].column[component]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xip`].column[meaning]; semantic decisions A1-A10 in audit report
C00319	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:12	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xip`].column[component]	table-cell	"`xip`"	P10	PostgreSQL 18; row subject `xip`; column component; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Retained at docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xip`].column[component] (docs/postgres/04-mvcc/snapshots-under-the-hood.md:9); current scoped support applies
C00320	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:12	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xip`].column[meaning]	table-cell	"the xids between the two that were still **in progress** at snapshot time: invisible, forever, in this snapshot"	P10	PostgreSQL 18; row subject `xip`; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[component].column[component]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[component].column[meaning]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmin`].column[component]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmin`].column[meaning]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmax`].column[component]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmax`].column[meaning]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xip`].column[component]; docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xip`].column[meaning]; semantic decisions A1-A10 in audit report
C00321	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:14	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[# Snapshots under the hood].paragraph@14	lesson-paragraph	"A row version is visible if its `xmin` is committed, below `xmax`, and not in `xip`, and its\n`xmax` (if set) fails that same test. Notice what's absent from the rule: the current time.\nWhether the creator commits a nanosecond or an hour after the snapshot was taken changes nothing."	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[# Snapshots under the hood].paragraph@3; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[# Snapshots under the hood].paragraph@11; semantic decisions A1-A10 in audit report
C00322	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:18	docs/postgres/04-mvcc/snapshots-under-the-hood.md#heading@18	heading	"## The three numbers, live"	P10	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/snapshots-under-the-hood.md#heading@13 (docs/postgres/04-mvcc/snapshots-under-the-hood.md:13); current scoped support applies
C00323	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:20	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@20	lesson-paragraph	"<!--@include: ./parts/snapshots-under-the-hood.md-->"	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@15 (docs/postgres/04-mvcc/snapshots-under-the-hood.md:15); current scoped support applies
C00324	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:22	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@22	lesson-paragraph	"Three beats reward a second look. The first is that xids are handed out lazily: A's transaction\nhad *no* xid until its first write, because assignment\n[\"happens when a transaction first writes to the database\"](https://www.postgresql.org/docs/current/transaction-id.html).\nRead-only transactions never consume one, which is why monitoring columns like `backend_xid` are\nso often null for busy read-only sessions, and why the workloads that burn through xids are the\nwrite-heavy ones."	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@15; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@17; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@19; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@21; semantic decisions A1-A10 in audit report
C00325	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:29	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@29	lesson-paragraph	"The second: `xmax` is one past the highest *completed* xid, not the next id to be assigned. A got\nits xid before B, yet sits at `xmin`, below `xmax`, alive in `xip`: the three numbers bracket\nexactly the region where \"did this commit?\" is still ambiguous."	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@15; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@17; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@19; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@21; semantic decisions A1-A10 in audit report
C00326	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:33	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@33	lesson-paragraph	"The third is the punchline: commit doesn't matter, because the snapshot already decided. A commits\nmid-scenario and C's verdict doesn't budge. That reframes the whole of chapter 2: the isolation\nlevels are nothing but retention policies for this one object.\n[Read Committed](/postgres/02-isolation/read-committed) takes a fresh snapshot per statement;\n[Repeatable Read](/postgres/02-isolation/repeatable-read) keeps one for the whole transaction. Same\narithmetic, different lifetime."	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@15; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@17; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@19; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@21; semantic decisions A1-A10 in audit report
C00327	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:40	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@40	lesson-paragraph	"That's the lever, then: inspect your own snapshot with\n[`pg_current_snapshot()`](https://www.postgresql.org/docs/current/functions-info.html#FUNCTIONS-PG-SNAPSHOT),\nand remember that visibility is pure arithmetic on xids: no clocks, no \"latest committed value\"\nlookup. It's why MVCC reads are cheap, and also why old snapshots are expensive: someone has to\nkeep every version they might still need, which is the whole problem the\n[long-transactions lesson](/postgres/04-mvcc/long-transactions) picks apart next."	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@15; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@17; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@19; docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@21; semantic decisions A1-A10 in audit report
C00328	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:47	docs/postgres/04-mvcc/snapshots-under-the-hood.md#heading@47	heading	"## Further reading"	P10	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/snapshots-under-the-hood.md#heading@23 (docs/postgres/04-mvcc/snapshots-under-the-hood.md:23); current scoped support applies
C00329	base	docs/postgres/04-mvcc/snapshots-under-the-hood.md:49	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## Further reading].paragraph@49	lesson-paragraph	"- [PostgreSQL docs: Transaction ID and Snapshot Information Functions](https://www.postgresql.org/docs/current/functions-info.html#FUNCTIONS-PG-SNAPSHOT)\n- [PostgreSQL docs: Transactions and Identifiers](https://www.postgresql.org/docs/current/transaction-id.html)\n- [PostgreSQL docs: Introduction to MVCC](https://www.postgresql.org/docs/current/mvcc-intro.html)\n- [The same lesson on MySQL](/mysql/04-mvcc/read-views)"	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## Further reading].paragraph@25; semantic decisions A1-A10 in audit report
C00330	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:1	docs/postgres/04-mvcc/snapshots-under-the-hood.md#heading@1	heading	"# Snapshots under the hood"	P10	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00331	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:3	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[# Snapshots under the hood].paragraph@3	lesson-paragraph	"[`pg_current_snapshot()`](https://www.postgresql.org/docs/18/functions-info.html#FUNCTIONS-PG-SNAPSHOT) exposes top-level transaction-id visibility information. Its three components are not the complete tuple-visibility algorithm: commit/abort status, own writes, command order, subtransactions, frozen tuples and row-header flags also matter."	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00332	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:5	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[component].column[component]	table-cell	"component"	P10	PostgreSQL 18; row subject component; column component; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00333	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:5	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[component].column[meaning]	table-cell	"meaning"	P10	PostgreSQL 18; row subject component; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00334	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:7	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmin`].column[component]	table-cell	"`xmin`"	P10	PostgreSQL 18; row subject `xmin`; column component; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00335	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:7	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmin`].column[meaning]	table-cell	"lowest xid still active at snapshot time; smaller xids have completed, either committed or aborted"	P10	PostgreSQL 18; row subject `xmin`; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00336	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:8	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmax`].column[component]	table-cell	"`xmax`"	P10	PostgreSQL 18; row subject `xmax`; column component; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00337	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:8	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xmax`].column[meaning]	table-cell	"one past the highest completed xid in the documented representation; xids at or above it had not completed when the snapshot was taken"	P10	PostgreSQL 18; row subject `xmax`; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00338	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:9	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xip`].column[component]	table-cell	"`xip`"	P10	PostgreSQL 18; row subject `xip`; column component; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00339	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:9	docs/postgres/04-mvcc/snapshots-under-the-hood.md#table[1].row[`xip`].column[meaning]	table-cell	"in-progress top-level xids between the bounds; does not include subtransaction ids"	P10	PostgreSQL 18; row subject `xip`; column meaning; manual contract, not every cell executed		M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson	Resolved: scoped current M: explicit-locking Table 13.3, system-column contract, snapshot Table 9.85, or SELECT/client-setting contract as identified by this lesson
C00340	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:11	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[# Snapshots under the hood].paragraph@11	lesson-paragraph	"These are [Documented contracts, Table 9.85](https://www.postgresql.org/docs/18/functions-info.html#FUNCTIONS-PG-SNAPSHOT). Completion alone is not commitment: a completed transaction can be aborted. This representation is a teaching aid for the schedule, not a substitute for PostgreSQL's visibility checks."	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00341	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:13	docs/postgres/04-mvcc/snapshots-under-the-hood.md#heading@13	heading	"## The three numbers, live"	P10	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00342	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:15	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@15	lesson-paragraph	"<!--@include: ./parts/snapshots-under-the-hood.md-->"	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00343	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:17	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@17	lesson-paragraph	"A's ordinary read has not assigned an xid, then its UPDATE assigns one. B updates a different row and commits. C takes a Repeatable Read snapshot: it asserts A at xmin and in xip, and xmax equal to B's xid plus one. Its table reads assert A's old value 100 and B's committed 200. A commits, but C's repeat still sees the same values. After C commits, its fresh read sees A's 150."	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00344	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:19	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@19	lesson-paragraph	"[`pg_current_xact_id()`](https://www.postgresql.org/docs/18/functions-info.html#FUNCTIONS-PG-SNAPSHOT) can assign an xid even without a table write. Thus the observation that A's initial read had no xid is not a guarantee that read-only transactions never consume one. The [transaction-id chapter](https://www.postgresql.org/docs/18/transaction-id.html) documents lazy assignment and the distinction between 32-bit xid and epoch-extended xid8."	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00345	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:21	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## The three numbers, live].paragraph@21	lesson-paragraph	"Under the [isolation contract](https://www.postgresql.org/docs/18/transaction-iso.html), ordinary Read Committed table reads take a new snapshot per command; Repeatable Read establishes its retained snapshot at the first non-transaction-control statement. Both can see their own earlier writes. UPDATE and locking SELECT can wait or reject changed rows under their level-specific rules. C's demonstration excludes A's newly committed version from an already retained snapshot; it does not make commit order irrelevant to which snapshot a later reader takes. No read-cost benchmark is claimed."	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00346	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:23	docs/postgres/04-mvcc/snapshots-under-the-hood.md#heading@23	heading	"## Further reading"	P10	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00347	current	docs/postgres/04-mvcc/snapshots-under-the-hood.md:25	docs/postgres/04-mvcc/snapshots-under-the-hood.md#section[## Further reading].paragraph@25	lesson-paragraph	"- [PostgreSQL 18: Snapshot Information Functions](https://www.postgresql.org/docs/18/functions-info.html#FUNCTIONS-PG-SNAPSHOT)\n- [PostgreSQL 18: Transactions and Identifiers](https://www.postgresql.org/docs/18/transaction-id.html)\n- [The same lesson on MySQL](/mysql/04-mvcc/read-views)"	P10	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00348	base	docs/postgres/04-mvcc/vacuum.md:1	docs/postgres/04-mvcc/vacuum.md#heading@1	heading	"# VACUUM"	P11	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/vacuum.md#heading@1 (docs/postgres/04-mvcc/vacuum.md:1); current scoped support applies
C00349	base	docs/postgres/04-mvcc/vacuum.md:3	docs/postgres/04-mvcc/vacuum.md#section[# VACUUM].paragraph@3	lesson-paragraph	"VACUUM is the collector for the garbage [MVCC leaves behind](/postgres/04-mvcc/dead-tuples-and-bloat):\nit removes dead tuples and marks their space reusable, but reusable *inside the file*. What it\nalmost never does is make the file smaller. This lesson proves both halves."	P11	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/vacuum.md#section[# VACUUM].paragraph@3; semantic decisions A1-A10 in audit report
C00350	base	docs/postgres/04-mvcc/vacuum.md:7	docs/postgres/04-mvcc/vacuum.md#heading@7	heading	"## What VACUUM actually does to a page"	P11	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/vacuum.md#heading@5 (docs/postgres/04-mvcc/vacuum.md:5); current scoped support applies
C00351	base	docs/postgres/04-mvcc/vacuum.md:9	docs/postgres/04-mvcc/vacuum.md#section[## What VACUUM actually does to a page].paragraph@9	lesson-paragraph	"<!--@include: ./parts/vacuum.md-->"	P11	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Retained at docs/postgres/04-mvcc/vacuum.md#section[## What VACUUM actually does to a page].paragraph@7 (docs/postgres/04-mvcc/vacuum.md:7); current scoped support applies
C00352	base	docs/postgres/04-mvcc/vacuum.md:11	docs/postgres/04-mvcc/vacuum.md#section[## What VACUUM actually does to a page].paragraph@11	lesson-paragraph	"Reading the after picture (`lp_flags` values aren't in the manual, the\n[pageinspect docs](https://www.postgresql.org/docs/current/pageinspect.html) point at\n[`src/include/storage/itemid.h`](https://github.com/postgres/postgres/blob/master/src/include/storage/itemid.h)):\n`1` is a normal tuple, `2` is a *redirect* (the chain's entry point now jumps straight to the\nlive version), and `0` is unused, free for the taking. The very next `INSERT` proves the point by\nlanding in slot 2, previously a corpse. (The redirect is a leftover of a\n[HOT update chain](https://www.postgresql.org/docs/current/storage-hot.html): updates that don't\ntouch indexed columns link versions within the page, and index entries keep pointing at the root\nslot.)"	P11	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/vacuum.md#section[## What VACUUM actually does to a page].paragraph@7; docs/postgres/04-mvcc/vacuum.md#section[## What VACUUM actually does to a page].paragraph@9; semantic decisions A1-A10 in audit report
C00353	base	docs/postgres/04-mvcc/vacuum.md:21	docs/postgres/04-mvcc/vacuum.md#heading@21	heading	"## Why your table didn't shrink"	P11	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/vacuum.md#heading@11 (docs/postgres/04-mvcc/vacuum.md:11); current scoped support applies
C00354	base	docs/postgres/04-mvcc/vacuum.md:23	docs/postgres/04-mvcc/vacuum.md#section[## Why your table didn't shrink].paragraph@23	lesson-paragraph	"The manual says it plainly: the standard form of VACUUM\n[\"removes dead row versions in tables and indexes and marks the space available for future reuse.\nHowever, it will not return the space to the operating system, except in the special case\nwhere one or more pages at the end of a table become entirely free and an exclusive table\nlock can be easily obtained\"](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY).\n`VACUUM FULL` is the real shrink. It\n[\"actively compacts tables by writing a complete new version of the table file with no dead space\"](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY),\nbut it holds [`ACCESS EXCLUSIVE`](/postgres/03-locking/table-locks-and-ddl) for the whole rewrite:\na full outage on that table, plus double the disk while it runs. On a big production table that's\nrarely acceptable; steady autovacuum that never lets bloat build up beats heroic compaction."	P11	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/vacuum.md#section[## Why your table didn't shrink].paragraph@13; docs/postgres/04-mvcc/vacuum.md#section[## Why your table didn't shrink].paragraph@15; docs/postgres/04-mvcc/vacuum.md#section[## Why your table didn't shrink].paragraph@17; semantic decisions A1-A10 in audit report
C00355	base	docs/postgres/04-mvcc/vacuum.md:34	docs/postgres/04-mvcc/vacuum.md#section[## Why your table didn't shrink].paragraph@34	lesson-paragraph	"So the division of labor is the thing to remember: VACUUM reclaims for reuse, VACUUM FULL reclaims\nfor the OS. Day to day you want the former, running continuously via autovacuum, and you reserve\n`VACUUM FULL` for a genuine one-off disaster whose outage you can schedule. There's no good reason\nto switch autovacuum off: it takes only a weak\n[`SHARE UPDATE EXCLUSIVE`](https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES)\nlock and runs happily alongside reads and writes, and every \"autovacuum is killing us\" story ends\nwith a table that needed it more, not less. A table that's bloated but recycling in place is\nperfectly healthy: new versions reuse the freed slots and the size plateaus. Size that climbs\nwithout limit means vacuum can't keep up: the first thing to check is a\n[long transaction](/postgres/04-mvcc/long-transactions) pinning the horizon, which is the next\nlesson."	P11	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/vacuum.md#section[## Why your table didn't shrink].paragraph@13; docs/postgres/04-mvcc/vacuum.md#section[## Why your table didn't shrink].paragraph@15; docs/postgres/04-mvcc/vacuum.md#section[## Why your table didn't shrink].paragraph@17; semantic decisions A1-A10 in audit report
C00356	base	docs/postgres/04-mvcc/vacuum.md:46	docs/postgres/04-mvcc/vacuum.md#heading@46	heading	"## Further reading"	P11	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/vacuum.md#heading@19 (docs/postgres/04-mvcc/vacuum.md:19); current scoped support applies
C00357	base	docs/postgres/04-mvcc/vacuum.md:48	docs/postgres/04-mvcc/vacuum.md#section[## Further reading].paragraph@48	lesson-paragraph	"- [PostgreSQL docs: Recovering Disk Space](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY)\n- [PostgreSQL docs: VACUUM](https://www.postgresql.org/docs/current/sql-vacuum.html)\n- [PostgreSQL docs: Heap-Only Tuples (HOT)](https://www.postgresql.org/docs/current/storage-hot.html)\n- [The same lesson on MySQL](/mysql/04-mvcc/purge)"	P11	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/vacuum.md#section[## Further reading].paragraph@21; semantic decisions A1-A10 in audit report
C00358	current	docs/postgres/04-mvcc/vacuum.md:1	docs/postgres/04-mvcc/vacuum.md#heading@1	heading	"# VACUUM"	P11	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00359	current	docs/postgres/04-mvcc/vacuum.md:3	docs/postgres/04-mvcc/vacuum.md#section[# VACUUM].paragraph@3	lesson-paragraph	"PostgreSQL 18 [documents standard VACUUM](https://www.postgresql.org/docs/18/routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY) as reclaiming obsolete versions for reuse. It can return wholly empty trailing heap pages when the required exclusive lock is available. VACUUM FULL instead rewrites the relation to compact it. Neither observation here promises an exact size for arbitrary tables."	P11	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00360	current	docs/postgres/04-mvcc/vacuum.md:5	docs/postgres/04-mvcc/vacuum.md#heading@5	heading	"## What VACUUM actually does to a page"	P11	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00361	current	docs/postgres/04-mvcc/vacuum.md:7	docs/postgres/04-mvcc/vacuum.md#section[## What VACUUM actually does to a page].paragraph@7	lesson-paragraph	"<!--@include: ./parts/vacuum.md-->"	P11	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		Generated include; exact source assertions and mirrors in registry	Resolved: scoped current Generated include; exact source assertions and mirrors in registry
C00362	current	docs/postgres/04-mvcc/vacuum.md:9	docs/postgres/04-mvcc/vacuum.md#section[## What VACUUM actually does to a page].paragraph@9	lesson-paragraph	"The asserted counters page has a redirect at slot 1, unused slots 2 and 3, and a live tuple at slot 4. The next INSERT asserts ctid `(0,2)`, showing reuse in this setup. [pageinspect](https://www.postgresql.org/docs/18/pageinspect.html) exposes those fields; the PostgreSQL 18 [item-id definitions](https://github.com/postgres/postgres/blob/REL_18_STABLE/src/include/storage/itemid.h) define flags 0 (unused), 1 (normal) and 2 (redirect). [HOT](https://www.postgresql.org/docs/18/storage-hot.html) requires sufficient page space and no changed indexed columns except summarizing indexes; this is not a rule that every non-indexed UPDATE makes the same chain layout."	P11	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00363	current	docs/postgres/04-mvcc/vacuum.md:11	docs/postgres/04-mvcc/vacuum.md#heading@11	heading	"## Why your table didn't shrink"	P11	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00364	current	docs/postgres/04-mvcc/vacuum.md:13	docs/postgres/04-mvcc/vacuum.md#section[## Why your table didn't shrink].paragraph@13	lesson-paragraph	"In bloat the asserted size is nine pages after standard VACUUM and five after VACUUM FULL. The nine-page result alone does not count reclaimed tuples or measure all reusable space. The counters observation demonstrates reclamation separately."	P11	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00365	current	docs/postgres/04-mvcc/vacuum.md:15	docs/postgres/04-mvcc/vacuum.md#section[## Why your table didn't shrink].paragraph@15	lesson-paragraph	"[VACUUM FULL](https://www.postgresql.org/docs/18/sql-vacuum.html) requires ACCESS EXCLUSIVE and extra storage for the new copy until the rewrite finishes. Ordinary reads and writes from other transactions cannot acquire their table locks while that lock is held. Exact extra storage, rewrite duration and production acceptability depend on the relation and workload; no “double disk” benchmark is established here."	P11	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00366	current	docs/postgres/04-mvcc/vacuum.md:17	docs/postgres/04-mvcc/vacuum.md#section[## Why your table didn't shrink].paragraph@17	lesson-paragraph	"Standard VACUUM uses SHARE UPDATE EXCLUSIVE, compatible with ordinary table reads and writes but conflicting with some maintenance and DDL. Its optional trailing-page truncation can require ACCESS EXCLUSIVE. Autovacuum performs standard vacuuming, not VACUUM FULL. Regular maintenance can promote reuse, but neither stable table size nor zero blocking is a universal guarantee. Check [old snapshots](/postgres/04-mvcc/long-transactions) and other retention conditions when cleanup cannot reclaim the needed versions."	P11	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00367	current	docs/postgres/04-mvcc/vacuum.md:19	docs/postgres/04-mvcc/vacuum.md#heading@19	heading	"## Further reading"	P11	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00368	current	docs/postgres/04-mvcc/vacuum.md:21	docs/postgres/04-mvcc/vacuum.md#section[## Further reading].paragraph@21	lesson-paragraph	"- [PostgreSQL 18: Recovering Disk Space](https://www.postgresql.org/docs/18/routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY)\n- [PostgreSQL 18: VACUUM](https://www.postgresql.org/docs/18/sql-vacuum.html)\n- [The same lesson on MySQL](/mysql/04-mvcc/purge)"	P11	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00369	base	docs/postgres/04-mvcc/wraparound.md:1	docs/postgres/04-mvcc/wraparound.md#heading@1	heading	"# Transaction ID wraparound"	P12	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/wraparound.md#heading@1 (docs/postgres/04-mvcc/wraparound.md:1); current scoped support applies
C00370	base	docs/postgres/04-mvcc/wraparound.md:3	docs/postgres/04-mvcc/wraparound.md#section[# Transaction ID wraparound].paragraph@3	lesson-paragraph	"One honest exception in this project: wraparound is the one claim we can't prove with a runnable\nscenario: forcing it means burning through ~2 *billion* transaction ids. So this page is prose,\nbuilt directly on the\n[manual's wraparound section](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND),\nand everything testable about the machinery (xids, snapshots, vacuum) was already proven in the\nprevious lessons."	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/wraparound.md#section[# Transaction ID wraparound].paragraph@3; semantic decisions A1-A10 in audit report
C00371	base	docs/postgres/04-mvcc/wraparound.md:10	docs/postgres/04-mvcc/wraparound.md#heading@10	heading	"## The problem: xids are 32-bit and circular"	P12	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/wraparound.md#heading@5 (docs/postgres/04-mvcc/wraparound.md:5); current scoped support applies
C00372	base	docs/postgres/04-mvcc/wraparound.md:12	docs/postgres/04-mvcc/wraparound.md#section[## The problem: xids are 32-bit and circular].paragraph@12	lesson-paragraph	"Every `xmin` and `xmax` you saw in this chapter is a 32-bit counter. Four billion values, then it\nwraps to the beginning. Visibility comparisons (\"did this xid commit before my snapshot?\")\ntherefore use circular arithmetic: for any xid, two billion ids are \"in the past\" and two billion\nare \"in the future\"."	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/wraparound.md#section[## The problem: xids are 32-bit and circular].paragraph@7; semantic decisions A1-A10 in audit report
C00373	base	docs/postgres/04-mvcc/wraparound.md:17	docs/postgres/04-mvcc/wraparound.md#section[## The problem: xids are 32-bit and circular].paragraph@17	lesson-paragraph	"Now recall the [row-versions lesson](/postgres/04-mvcc/row-versions): a committed row is visible\nbecause its `xmin` is \"in the past\". If that row sits there untouched while the counter advances,\nit crosses over. The manual:\n[\"If the row version still exists after more than two billion transactions, it will suddenly appear to be in the future\"](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND).\nA row \"in the future\" is invisible to every snapshot. Committed data, still on disk, readable by\nno one: catastrophic data loss in effect, even though nothing was deleted."	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/wraparound.md#section[## The problem: xids are 32-bit and circular].paragraph@7; semantic decisions A1-A10 in audit report
C00374	base	docs/postgres/04-mvcc/wraparound.md:24	docs/postgres/04-mvcc/wraparound.md#heading@24	heading	"## The fix: freezing"	P12	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/wraparound.md#heading@9 (docs/postgres/04-mvcc/wraparound.md:9); current scoped support applies
C00375	base	docs/postgres/04-mvcc/wraparound.md:26	docs/postgres/04-mvcc/wraparound.md#section[## The fix: freezing].paragraph@26	lesson-paragraph	"VACUUM prevents this by *freezing* old rows: any row version older than\n[`vacuum_freeze_min_age`](https://www.postgresql.org/docs/current/runtime-config-vacuum.html#GUC-VACUUM-FREEZE-MIN-AGE)\n(50 million xids by default) is marked frozen, flagged as inserted so far in the past that it's\n[\"certain to be visible to all current and future transactions\"](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND),\nits actual `xmin` no longer consulted. This is the second job of the vacuums you met in the\n[previous lesson](/postgres/04-mvcc/vacuum), and it's why vacuum isn't optional: even an\nappend-only, never-updated, zero-bloat table has to be vacuumed eventually, purely for freezing."	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/wraparound.md#section[## The fix: freezing].paragraph@11; docs/postgres/04-mvcc/wraparound.md#section[## The fix: freezing].paragraph@13; docs/postgres/04-mvcc/wraparound.md#section[## The fix: freezing].paragraph@15; semantic decisions A1-A10 in audit report
C00376	base	docs/postgres/04-mvcc/wraparound.md:34	docs/postgres/04-mvcc/wraparound.md#section[## The fix: freezing].paragraph@34	lesson-paragraph	"Two safety nets sit behind autovacuum. The first: once a table's oldest unfrozen xid passes\n[`autovacuum_freeze_max_age`](https://www.postgresql.org/docs/current/runtime-config-vacuum.html#GUC-AUTOVACUUM-FREEZE-MAX-AGE)\n(200 million by default), autovacuum launches an anti-wraparound vacuum on it, even if autovacuum\nis otherwise disabled. The second is the last line of defense: if that vacuum never completes (blocked by the same enemies as always, a [long-running transaction](/postgres/04-mvcc/long-transactions),\nan orphaned replication slot, a forgotten prepared transaction), the server starts warning 40\nmillion xids before the cliff, and with 3 million left it\n[refuses to assign new xids](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND)\nrather than corrupt visibility. That's a write outage, not a full one: reads keep working, writes\nfail, and running `VACUUM` still works and is the way out. (The single-user-mode ritual of old\nversions is [no longer necessary or desirable](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND).)"	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/wraparound.md#section[## The fix: freezing].paragraph@11; docs/postgres/04-mvcc/wraparound.md#section[## The fix: freezing].paragraph@13; docs/postgres/04-mvcc/wraparound.md#section[## The fix: freezing].paragraph@15; semantic decisions A1-A10 in audit report
C00377	base	docs/postgres/04-mvcc/wraparound.md:45	docs/postgres/04-mvcc/wraparound.md#heading@45	heading	"## Watching the clock"	P12	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/wraparound.md#heading@17 (docs/postgres/04-mvcc/wraparound.md:17); current scoped support applies
C00378	base	docs/postgres/04-mvcc/wraparound.md:47	docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@47	lesson-paragraph	"The distance to trouble is one query away (illustrative;\n[chapter 8 turns it into an alert](/postgres/08-production/bloat-and-vacuum-health)):"	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@19; docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@21; docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@27; semantic decisions A1-A10 in audit report
C00379	base	docs/postgres/04-mvcc/wraparound.md:50	docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@50	lesson-paragraph	"```sql\nSELECT datname, age(datfrozenxid) AS oldest_unfrozen_age\nFROM pg_database\nORDER BY age(datfrozenxid) DESC;\n```"	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Retained at docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@21 (docs/postgres/04-mvcc/wraparound.md:21); current scoped support applies
C00380	base	docs/postgres/04-mvcc/wraparound.md:56	docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@56	lesson-paragraph	"`age(...)` counts xids consumed since the database's oldest unfrozen xid. Healthy systems hover in\nthe low hundreds of millions (autovacuum resets the clock at 200 M by default); sustained growth\ntoward a billion means anti-wraparound vacuums aren't finishing."	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@19; docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@21; docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@27; semantic decisions A1-A10 in audit report
C00381	base	docs/postgres/04-mvcc/wraparound.md:60	docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@60	lesson-paragraph	"The reassuring part is that none of this is exotic. Wraparound is the routine consequence of a\n32-bit counter, held at bay by routine freezing, and it only becomes an incident when vacuum is\nprevented from finishing for hundreds of millions of transactions. The blockers are this chapter's\nusual suspects: long transactions, abandoned replication slots, unresolved prepared transactions.\nSo the practical advice is short: never disable autovacuum, and alert on `age(datfrozenxid)` long\nbefore PostgreSQL starts refusing writes. Find out what's holding the horizon now, not at two\nbillion."	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@19; docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@21; docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@27; semantic decisions A1-A10 in audit report
C00382	base	docs/postgres/04-mvcc/wraparound.md:68	docs/postgres/04-mvcc/wraparound.md#heading@68	heading	"## Further reading"	P12	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Retained at docs/postgres/04-mvcc/wraparound.md#heading@29 (docs/postgres/04-mvcc/wraparound.md:29); current scoped support applies
C00383	base	docs/postgres/04-mvcc/wraparound.md:70	docs/postgres/04-mvcc/wraparound.md#section[## Further reading].paragraph@70	lesson-paragraph	"- [PostgreSQL docs: Preventing Transaction ID Wraparound Failures](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND)\n- [PostgreSQL docs: Routine Vacuuming](https://www.postgresql.org/docs/current/routine-vacuuming.html)"	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/wraparound.md#section[## Further reading].paragraph@31; semantic decisions A1-A10 in audit report
C00384	current	docs/postgres/04-mvcc/wraparound.md:1	docs/postgres/04-mvcc/wraparound.md#heading@1	heading	"# Transaction ID wraparound"	P12	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00385	current	docs/postgres/04-mvcc/wraparound.md:3	docs/postgres/04-mvcc/wraparound.md#section[# Transaction ID wraparound].paragraph@3	lesson-paragraph	"This page states PostgreSQL 18 Documented contracts from [Preventing Transaction ID Wraparound Failures](https://www.postgresql.org/docs/18/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND). No wraparound, freeze-age threshold, anti-wraparound launch, warning or stop condition is executed by a project Scenario. The preceding lessons demonstrate selected xid, snapshot and page-reclamation observations, not all this machinery."	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00386	current	docs/postgres/04-mvcc/wraparound.md:5	docs/postgres/04-mvcc/wraparound.md#heading@5	heading	"## The problem: xids are 32-bit and circular"	P12	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00387	current	docs/postgres/04-mvcc/wraparound.md:7	docs/postgres/04-mvcc/wraparound.md#section[## The problem: xids are 32-bit and circular].paragraph@7	lesson-paragraph	"Tuple xmin/xmax use 32-bit identifiers. Circular ordering permits comparison within roughly half the identifier space. An unfrozen old insertion xid could otherwise appear to be in the future after about two billion assigned xids. This is a visibility hazard described by the manual, not observed data loss here. The [xid8 functions](https://www.postgresql.org/docs/18/functions-info.html#FUNCTIONS-PG-SNAPSHOT) include an epoch and are a different representation."	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00388	current	docs/postgres/04-mvcc/wraparound.md:9	docs/postgres/04-mvcc/wraparound.md#heading@9	heading	"## The fix: freezing"	P12	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00389	current	docs/postgres/04-mvcc/wraparound.md:11	docs/postgres/04-mvcc/wraparound.md#section[## The fix: freezing].paragraph@11	lesson-paragraph	"VACUUM marks sufficiently old eligible tuple versions frozen so future visibility checks do not depend on their normal insertion-xid ordering. In current PostgreSQL it uses tuple flags; the original xmin value is retained for inspection. A frozen insertion does not make a subsequently deleted tuple visible forever. Freezing still obeys safe visibility horizons; vacuum_freeze_min_age is an eligibility setting, not a promise that every older version is frozen on every pass."	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00390	current	docs/postgres/04-mvcc/wraparound.md:13	docs/postgres/04-mvcc/wraparound.md#section[## The fix: freezing].paragraph@13	lesson-paragraph	"PostgreSQL 18's [vacuum settings](https://www.postgresql.org/docs/18/runtime-config-vacuum.html) document a default vacuum_freeze_min_age of 50 million and autovacuum_freeze_max_age of 200 million. Anti-wraparound autovacuum can run even when ordinary autovacuum is disabled. The maximum age triggers maintenance; it does not guarantee completion or reset every database's age precisely at 200 million."	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00391	current	docs/postgres/04-mvcc/wraparound.md:15	docs/postgres/04-mvcc/wraparound.md#section[## The fix: freezing].paragraph@15	lesson-paragraph	"The [wraparound section](https://www.postgresql.org/docs/18/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND) documents warnings with 40 million xids left and refusal to assign new xids with three million left. Operations that need no new xid can continue; VACUUM remains available for recovery. Do not assume all SELECTs succeed, since functions or locking work can require resources beyond an ordinary read. Old snapshots, unresolved prepared transactions, and replication-slot retention can obstruct cleanup. This page does not execute their recovery or outage behavior."	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00392	current	docs/postgres/04-mvcc/wraparound.md:17	docs/postgres/04-mvcc/wraparound.md#heading@17	heading	"## Watching the clock"	P12	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00393	current	docs/postgres/04-mvcc/wraparound.md:19	docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@19	lesson-paragraph	"This query is illustrative, based on the [database catalog](https://www.postgresql.org/docs/18/catalog-pg-database.html) and [age function](https://www.postgresql.org/docs/18/functions-info.html#FUNCTIONS-PG-SNAPSHOT):"	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00394	current	docs/postgres/04-mvcc/wraparound.md:21	docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@21	lesson-paragraph	"```sql\nSELECT datname, age(datfrozenxid) AS oldest_unfrozen_age\nFROM pg_database\nORDER BY age(datfrozenxid) DESC;\n```"	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00395	current	docs/postgres/04-mvcc/wraparound.md:27	docs/postgres/04-mvcc/wraparound.md#section[## Watching the clock].paragraph@27	lesson-paragraph	"datfrozenxid summarizes the oldest unfrozen xid boundary for the database. Its age is xid distance, not elapsed time or a count of live rows. Choose alerts well before the documented stop boundary and investigate retention when age rises. [Chapter 8](/postgres/08-production/bloat-and-vacuum-health) provides monitoring follow-up; no healthy-age distribution is measured here."	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00396	current	docs/postgres/04-mvcc/wraparound.md:29	docs/postgres/04-mvcc/wraparound.md#heading@29	heading	"## Further reading"	P12	Editorial title; no independent behavioral guarantee		Editorial heading; qualified by associated lesson text	Resolved: scoped current Editorial heading; qualified by associated lesson text
C00397	current	docs/postgres/04-mvcc/wraparound.md:31	docs/postgres/04-mvcc/wraparound.md#section[## Further reading].paragraph@31	lesson-paragraph	"- [PostgreSQL 18: Preventing Wraparound Failures](https://www.postgresql.org/docs/18/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND)\n- [PostgreSQL 18: Vacuum settings](https://www.postgresql.org/docs/18/runtime-config-vacuum.html)"	P12	PostgreSQL 18 manual; PostgreSQL 18.6 linked schedules; operation/configuration limits in this paragraph and registry		M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence	Resolved: scoped current M/D as linked in this paragraph: versioned manual contracts or exact asserted schedule; illustrative SQL, advice and navigation are not new execution evidence
C00398	base	scenarios/postgres/03-locking/alter-table-outage.yaml:1	scenarios/postgres/03-locking/alter-table-outage.yaml#title	yaml-scalar	"The classic migration outage, in four statements"	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#title (scenarios/postgres/03-locking/alter-table-outage.yaml:1); current scoped support applies
C00399	base	scenarios/postgres/03-locking/alter-table-outage.yaml:2	scenarios/postgres/03-locking/alter-table-outage.yaml#claim	yaml-scalar	"An ALTER TABLE queued behind one long transaction blocks every later query on that table — even plain SELECTs — because they must queue behind its ACCESS EXCLUSIVE request."	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/alter-table-outage.yaml#claim; semantic decisions A1-A10 in audit report
C00400	base	scenarios/postgres/03-locking/alter-table-outage.yaml:6	scenarios/postgres/03-locking/alter-table-outage.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#setup (scenarios/postgres/03-locking/alter-table-outage.yaml:6); current scoped support applies
C00401	base	scenarios/postgres/03-locking/alter-table-outage.yaml:9	scenarios/postgres/03-locking/alter-table-outage.yaml#sessions[0]	yaml-scalar	"A"	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#sessions[0] (scenarios/postgres/03-locking/alter-table-outage.yaml:9); current scoped support applies
C00402	base	scenarios/postgres/03-locking/alter-table-outage.yaml:9	scenarios/postgres/03-locking/alter-table-outage.yaml#sessions[1]	yaml-scalar	"B"	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#sessions[1] (scenarios/postgres/03-locking/alter-table-outage.yaml:9); current scoped support applies
C00403	base	scenarios/postgres/03-locking/alter-table-outage.yaml:9	scenarios/postgres/03-locking/alter-table-outage.yaml#sessions[2]	yaml-scalar	"C"	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#sessions[2] (scenarios/postgres/03-locking/alter-table-outage.yaml:9); current scoped support applies
C00404	base	scenarios/postgres/03-locking/alter-table-outage.yaml:9	scenarios/postgres/03-locking/alter-table-outage.yaml#sessions[3]	yaml-scalar	"M"	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#sessions[3] (scenarios/postgres/03-locking/alter-table-outage.yaml:9); current scoped support applies
C00405	base	scenarios/postgres/03-locking/alter-table-outage.yaml:11	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[0].note	yaml-scalar	"A is any long-lived transaction that has touched the table — a report, a stuck job…"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/alter-table-outage.yaml#steps[0].note; semantic decisions A1-A10 in audit report
C00406	base	scenarios/postgres/03-locking/alter-table-outage.yaml:12	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[1].A	yaml-scalar	"BEGIN"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[1].A (scenarios/postgres/03-locking/alter-table-outage.yaml:12); current scoped support applies
C00407	base	scenarios/postgres/03-locking/alter-table-outage.yaml:13	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[2].A	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[2].A (scenarios/postgres/03-locking/alter-table-outage.yaml:13); current scoped support applies
C00408	base	scenarios/postgres/03-locking/alter-table-outage.yaml:14	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[2].tl	yaml-scalar	"SELECT (a long-lived transaction)"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[2].tl (scenarios/postgres/03-locking/alter-table-outage.yaml:14); current scoped support applies
C00409	base	scenarios/postgres/03-locking/alter-table-outage.yaml:16	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[3].note	yaml-scalar	"The migration needs ACCESS EXCLUSIVE, so it waits for A. Expected. But now —"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[3].note (scenarios/postgres/03-locking/alter-table-outage.yaml:16); current scoped support applies
C00410	base	scenarios/postgres/03-locking/alter-table-outage.yaml:17	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[4].B	yaml-scalar	"ALTER TABLE accounts ADD COLUMN note text"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[4].B (scenarios/postgres/03-locking/alter-table-outage.yaml:17); current scoped support applies
C00411	base	scenarios/postgres/03-locking/alter-table-outage.yaml:18	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[4].blocks	yaml-scalar	"p1"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[4].blocks (scenarios/postgres/03-locking/alter-table-outage.yaml:18); current scoped support applies
C00412	base	scenarios/postgres/03-locking/alter-table-outage.yaml:19	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[4].tl	yaml-scalar	"ALTER TABLE … ADD COLUMN"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[4].tl (scenarios/postgres/03-locking/alter-table-outage.yaml:19); current scoped support applies
C00413	base	scenarios/postgres/03-locking/alter-table-outage.yaml:21	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[5].note	yaml-scalar	"— every new query on the table queues behind the *waiting* ALTER. This is the outage."	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/alter-table-outage.yaml#steps[5].note; semantic decisions A1-A10 in audit report
C00414	base	scenarios/postgres/03-locking/alter-table-outage.yaml:22	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[6].C	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[6].C (scenarios/postgres/03-locking/alter-table-outage.yaml:22); current scoped support applies
C00415	base	scenarios/postgres/03-locking/alter-table-outage.yaml:23	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[6].blocks	yaml-scalar	"p2"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[6].blocks (scenarios/postgres/03-locking/alter-table-outage.yaml:23); current scoped support applies
C00416	base	scenarios/postgres/03-locking/alter-table-outage.yaml:24	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[6].tl	yaml-scalar	"SELECT — just a read!"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[6].tl (scenarios/postgres/03-locking/alter-table-outage.yaml:24); current scoped support applies
C00417	base	scenarios/postgres/03-locking/alter-table-outage.yaml:26	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].M	yaml-scalar	"SELECT waiter.application_name AS waiter, blocker.application_name AS blocker\nFROM pg_stat_activity waiter\nJOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\nWHERE waiter.wait_event_type = 'Lock'\nORDER BY waiter.application_name, blocker.application_name\n"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].M (scenarios/postgres/03-locking/alter-table-outage.yaml:26); current scoped support applies
C00418	base	scenarios/postgres/03-locking/alter-table-outage.yaml:32	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].expect[0].waiter	yaml-scalar	"B"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].expect[0].waiter (scenarios/postgres/03-locking/alter-table-outage.yaml:32); current scoped support applies
C00419	base	scenarios/postgres/03-locking/alter-table-outage.yaml:32	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].expect[0].blocker	yaml-scalar	"A"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].expect[0].blocker (scenarios/postgres/03-locking/alter-table-outage.yaml:32); current scoped support applies
C00420	base	scenarios/postgres/03-locking/alter-table-outage.yaml:32	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].expect[1].waiter	yaml-scalar	"C"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].expect[1].waiter (scenarios/postgres/03-locking/alter-table-outage.yaml:32); current scoped support applies
C00421	base	scenarios/postgres/03-locking/alter-table-outage.yaml:32	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].expect[1].blocker	yaml-scalar	"B"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].expect[1].blocker (scenarios/postgres/03-locking/alter-table-outage.yaml:32); current scoped support applies
C00422	base	scenarios/postgres/03-locking/alter-table-outage.yaml:34	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[8].note	yaml-scalar	"Only when A ends does the pile-up drain — migration first, then the reads."	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/alter-table-outage.yaml#steps[8].note; semantic decisions A1-A10 in audit report
C00423	base	scenarios/postgres/03-locking/alter-table-outage.yaml:35	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[9].A	yaml-scalar	"COMMIT"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[9].A (scenarios/postgres/03-locking/alter-table-outage.yaml:35); current scoped support applies
C00424	base	scenarios/postgres/03-locking/alter-table-outage.yaml:36	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[9].tl	yaml-scalar	"COMMIT"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[9].tl (scenarios/postgres/03-locking/alter-table-outage.yaml:36); current scoped support applies
C00425	base	scenarios/postgres/03-locking/alter-table-outage.yaml:37	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[10].success	yaml-scalar	"p1"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[10].success (scenarios/postgres/03-locking/alter-table-outage.yaml:37); current scoped support applies
C00426	base	scenarios/postgres/03-locking/alter-table-outage.yaml:38	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[11].success	yaml-scalar	"p2"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/alter-table-outage.yaml#steps[11].success (scenarios/postgres/03-locking/alter-table-outage.yaml:38); current scoped support applies
C00427	current	scenarios/postgres/03-locking/alter-table-outage.yaml:1	scenarios/postgres/03-locking/alter-table-outage.yaml#title	yaml-scalar	"The classic migration outage, in four statements"	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00428	current	scenarios/postgres/03-locking/alter-table-outage.yaml:2	scenarios/postgres/03-locking/alter-table-outage.yaml#claim	yaml-scalar	"In this schedule ALTER TABLE ADD COLUMN waits behind A's retained ACCESS SHARE, and C's new SELECT waits behind the queued ACCESS EXCLUSIVE request. Both complete after A commits; this is not a universal queue-order guarantee."	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00429	current	scenarios/postgres/03-locking/alter-table-outage.yaml:6	scenarios/postgres/03-locking/alter-table-outage.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00430	current	scenarios/postgres/03-locking/alter-table-outage.yaml:9	scenarios/postgres/03-locking/alter-table-outage.yaml#sessions[0]	yaml-scalar	"A"	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00431	current	scenarios/postgres/03-locking/alter-table-outage.yaml:9	scenarios/postgres/03-locking/alter-table-outage.yaml#sessions[1]	yaml-scalar	"B"	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00432	current	scenarios/postgres/03-locking/alter-table-outage.yaml:9	scenarios/postgres/03-locking/alter-table-outage.yaml#sessions[2]	yaml-scalar	"C"	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00433	current	scenarios/postgres/03-locking/alter-table-outage.yaml:9	scenarios/postgres/03-locking/alter-table-outage.yaml#sessions[3]	yaml-scalar	"M"	P13	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00434	current	scenarios/postgres/03-locking/alter-table-outage.yaml:11	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[0].note	yaml-scalar	"A reads accounts inside an explicit transaction and retains its table lock."	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00435	current	scenarios/postgres/03-locking/alter-table-outage.yaml:12	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[1].A	yaml-scalar	"BEGIN"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00436	current	scenarios/postgres/03-locking/alter-table-outage.yaml:13	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[2].A	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00437	current	scenarios/postgres/03-locking/alter-table-outage.yaml:14	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[2].tl	yaml-scalar	"SELECT (a long-lived transaction)"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00438	current	scenarios/postgres/03-locking/alter-table-outage.yaml:16	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[3].note	yaml-scalar	"The migration needs ACCESS EXCLUSIVE, so it waits for A. Expected. But now —"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00439	current	scenarios/postgres/03-locking/alter-table-outage.yaml:17	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[4].B	yaml-scalar	"ALTER TABLE accounts ADD COLUMN note text"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00440	current	scenarios/postgres/03-locking/alter-table-outage.yaml:18	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[4].blocks	yaml-scalar	"p1"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00441	current	scenarios/postgres/03-locking/alter-table-outage.yaml:19	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[4].tl	yaml-scalar	"ALTER TABLE … ADD COLUMN"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00442	current	scenarios/postgres/03-locking/alter-table-outage.yaml:21	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[5].note	yaml-scalar	"C's new SELECT now waits behind the queued ALTER request."	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00443	current	scenarios/postgres/03-locking/alter-table-outage.yaml:22	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[6].C	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00444	current	scenarios/postgres/03-locking/alter-table-outage.yaml:23	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[6].blocks	yaml-scalar	"p2"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00445	current	scenarios/postgres/03-locking/alter-table-outage.yaml:24	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[6].tl	yaml-scalar	"SELECT — just a read!"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00446	current	scenarios/postgres/03-locking/alter-table-outage.yaml:26	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].M	yaml-scalar	"SELECT waiter.application_name AS waiter, blocker.application_name AS blocker\nFROM pg_stat_activity waiter\nJOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\nWHERE waiter.wait_event_type = 'Lock'\nORDER BY waiter.application_name, blocker.application_name\n"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00447	current	scenarios/postgres/03-locking/alter-table-outage.yaml:32	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].expect[0].waiter	yaml-scalar	"B"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00448	current	scenarios/postgres/03-locking/alter-table-outage.yaml:32	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].expect[0].blocker	yaml-scalar	"A"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00449	current	scenarios/postgres/03-locking/alter-table-outage.yaml:32	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].expect[1].waiter	yaml-scalar	"C"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00450	current	scenarios/postgres/03-locking/alter-table-outage.yaml:32	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[7].expect[1].blocker	yaml-scalar	"B"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00451	current	scenarios/postgres/03-locking/alter-table-outage.yaml:34	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[8].note	yaml-scalar	"A commits; B's standalone ALTER and C's read then complete."	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00452	current	scenarios/postgres/03-locking/alter-table-outage.yaml:35	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[9].A	yaml-scalar	"COMMIT"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00453	current	scenarios/postgres/03-locking/alter-table-outage.yaml:36	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[9].tl	yaml-scalar	"COMMIT"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00454	current	scenarios/postgres/03-locking/alter-table-outage.yaml:37	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[10].success	yaml-scalar	"p1"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"ALTER TABLE accounts ADD COLUMN note text"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00455	current	scenarios/postgres/03-locking/alter-table-outage.yaml:38	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[11].success	yaml-scalar	"p2"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00456	current	scenarios/postgres/03-locking/alter-table-outage.yaml:39	scenarios/postgres/03-locking/alter-table-outage.yaml#steps[11].expect[0].balance	yaml-scalar	"100"	P13	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT balance FROM accounts WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00457	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:1	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#title	yaml-scalar	"The fix: run DDL with a lock_timeout"	P14	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#title (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:1); current scoped support applies
C00458	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:2	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#claim	yaml-scalar	"With lock_timeout set, a migration that can't get its lock fails fast (55P03) instead of queueing — and other sessions' queries are never blocked behind it."	P14	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/ddl-lock-timeout.yaml#claim; semantic decisions A1-A10 in audit report
C00459	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:6	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P14	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#setup (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:6); current scoped support applies
C00460	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:9	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#sessions[0]	yaml-scalar	"A"	P14	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#sessions[0] (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:9); current scoped support applies
C00461	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:9	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#sessions[1]	yaml-scalar	"B"	P14	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#sessions[1] (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:9); current scoped support applies
C00462	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:9	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#sessions[2]	yaml-scalar	"C"	P14	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#sessions[2] (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:9); current scoped support applies
C00463	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:11	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[0].A	yaml-scalar	"BEGIN"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[0].A (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:11); current scoped support applies
C00464	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:12	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[1].A	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[1].A (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:12); current scoped support applies
C00465	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:13	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[1].comment	yaml-scalar	"the same long transaction as before"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[1].comment (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:13); current scoped support applies
C00466	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:14	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[1].tl	yaml-scalar	"SELECT (long-lived txn) → holds ACCESS SHARE"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[1].tl (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:14); current scoped support applies
C00467	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:16	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[2].note	yaml-scalar	"Same migration — but this time it gives up after 100ms instead of camping in the queue."	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[2].note (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:16); current scoped support applies
C00468	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:17	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[3].B	yaml-scalar	"SET lock_timeout = '100ms'"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[3].B (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:17); current scoped support applies
C00469	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:18	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[4].B.fails	yaml-scalar	"ALTER TABLE accounts ADD COLUMN note text"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[4].B.fails (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:18); current scoped support applies
C00470	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:19	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[4].error	yaml-scalar	"55P03"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[4].error (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:19); current scoped support applies
C00471	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:20	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[4].tl	yaml-scalar	"ALTER TABLE … → gives up after 100ms"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[4].tl (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:20); current scoped support applies
C00472	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:22	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[5].note	yaml-scalar	"No waiting ALTER in the queue means no outage: C's read is instant."	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[5].note; semantic decisions A1-A10 in audit report
C00473	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:24	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[6].C	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[6].C (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:24); current scoped support applies
C00474	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:25	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[6].expect[0].balance	yaml-scalar	"100"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[6].expect[0].balance (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:25); current scoped support applies
C00475	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:26	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[6].tl	yaml-scalar	"SELECT → instant, nothing queued behind the ALTER"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[6].C; scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[6].expect[0].balance; scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[6].tl; semantic decisions A1-A10 in audit report
C00476	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:28	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[7].A	yaml-scalar	"COMMIT"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[7].A (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:28); current scoped support applies
C00477	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:29	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[7].tl	yaml-scalar	"COMMIT"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[7].tl (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:29); current scoped support applies
C00478	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:30	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[8].note	yaml-scalar	"Retry the migration when it can actually get the lock — now it sails through."	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[8].note (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:30); current scoped support applies
C00479	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:31	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[9].B	yaml-scalar	"ALTER TABLE accounts ADD COLUMN note text"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[9].B (scenarios/postgres/03-locking/ddl-lock-timeout.yaml:31); current scoped support applies
C00480	base	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:32	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[9].tl	yaml-scalar	"ALTER TABLE … (retry sails through)"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[9].B; scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[9].tl; semantic decisions A1-A10 in audit report
C00481	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:1	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#title	yaml-scalar	"The fix: run DDL with a lock_timeout"	P14	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00482	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:2	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#claim	yaml-scalar	"B's standalone ALTER waits for a lock and fails with 55P03 under a 100ms lock_timeout. C reads successfully after that request leaves the queue; B's retry after A commits adds the column."	P14	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00483	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:6	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P14	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00484	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:9	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#sessions[0]	yaml-scalar	"A"	P14	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00485	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:9	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#sessions[1]	yaml-scalar	"B"	P14	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00486	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:9	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#sessions[2]	yaml-scalar	"C"	P14	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00487	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:11	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[0].A	yaml-scalar	"BEGIN"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00488	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:12	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[1].A	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00489	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:13	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[1].comment	yaml-scalar	"the same long transaction as before"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00490	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:14	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[1].tl	yaml-scalar	"SELECT (long-lived txn) → holds ACCESS SHARE"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00491	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:16	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[2].note	yaml-scalar	"Same migration — but this time it gives up after 100ms instead of camping in the queue."	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00492	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:17	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[3].B	yaml-scalar	"SET lock_timeout = '100ms'"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00493	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:18	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[4].B.fails	yaml-scalar	"ALTER TABLE accounts ADD COLUMN note text"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00494	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:19	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[4].error	yaml-scalar	"55P03"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00495	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:20	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[4].tl	yaml-scalar	"ALTER TABLE … → gives up after 100ms"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00496	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:22	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[5].note	yaml-scalar	"After B's timeout removes its request, C's read returns 100. No read during B's wait is tested."	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00497	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:24	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[6].C	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00498	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:25	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[6].expect[0].balance	yaml-scalar	"100"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00499	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:26	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[6].tl	yaml-scalar	"SELECT after ALTER timeout → 100"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00500	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:28	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[7].A	yaml-scalar	"COMMIT"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00501	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:29	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[7].tl	yaml-scalar	"COMMIT"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00502	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:30	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[8].note	yaml-scalar	"Retry the migration when it can actually get the lock — now it sails through."	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00503	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:31	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[9].B	yaml-scalar	"ALTER TABLE accounts ADD COLUMN note text"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00504	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:32	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[9].tl	yaml-scalar	"ALTER TABLE … (retry completes)"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00505	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:33	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[10].C	yaml-scalar	"SELECT column_name FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'accounts' AND column_name = 'note'"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00506	current	scenarios/postgres/03-locking/ddl-lock-timeout.yaml:34	scenarios/postgres/03-locking/ddl-lock-timeout.yaml#steps[10].expect[0].column_name	yaml-scalar	"note"	P14	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00507	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:1	scenarios/postgres/03-locking/deadlock-avoidance.yaml#title	yaml-scalar	"Deadlock avoidance: lock rows in a consistent order"	P15	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#title (scenarios/postgres/03-locking/deadlock-avoidance.yaml:1); current scoped support applies
C00508	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:2	scenarios/postgres/03-locking/deadlock-avoidance.yaml#claim	yaml-scalar	"The same two opposite-direction transfers cannot deadlock if both transactions lock the rows in the same (id) order first — the second simply waits its turn."	P15	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/deadlock-avoidance.yaml#claim; semantic decisions A1-A10 in audit report
C00509	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:6	scenarios/postgres/03-locking/deadlock-avoidance.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100), (2, 'bob', 100);\n"	P15	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#setup (scenarios/postgres/03-locking/deadlock-avoidance.yaml:6); current scoped support applies
C00510	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:9	scenarios/postgres/03-locking/deadlock-avoidance.yaml#sessions[0]	yaml-scalar	"A"	P15	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#sessions[0] (scenarios/postgres/03-locking/deadlock-avoidance.yaml:9); current scoped support applies
C00511	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:9	scenarios/postgres/03-locking/deadlock-avoidance.yaml#sessions[1]	yaml-scalar	"B"	P15	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#sessions[1] (scenarios/postgres/03-locking/deadlock-avoidance.yaml:9); current scoped support applies
C00512	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:11	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[0].note	yaml-scalar	"Both transfers grab *all* their row locks up front, ordered by id."	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[0].note (scenarios/postgres/03-locking/deadlock-avoidance.yaml:11); current scoped support applies
C00513	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:12	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[1].A	yaml-scalar	"BEGIN"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[1].A (scenarios/postgres/03-locking/deadlock-avoidance.yaml:12); current scoped support applies
C00514	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:13	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[2].A	yaml-scalar	"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[2].A (scenarios/postgres/03-locking/deadlock-avoidance.yaml:13); current scoped support applies
C00515	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:14	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[2].tl	yaml-scalar	"SELECT id IN (1,2) … FOR UPDATE → locks both, in id order"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[2].tl (scenarios/postgres/03-locking/deadlock-avoidance.yaml:14); current scoped support applies
C00516	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:16	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[3].B	yaml-scalar	"BEGIN"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[3].B (scenarios/postgres/03-locking/deadlock-avoidance.yaml:16); current scoped support applies
C00517	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:17	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[4].B	yaml-scalar	"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[4].B (scenarios/postgres/03-locking/deadlock-avoidance.yaml:17); current scoped support applies
C00518	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:18	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[4].blocks	yaml-scalar	"p1"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[4].blocks (scenarios/postgres/03-locking/deadlock-avoidance.yaml:18); current scoped support applies
C00519	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:19	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[4].tl	yaml-scalar	"SELECT id IN (1,2) … FOR UPDATE"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[4].tl (scenarios/postgres/03-locking/deadlock-avoidance.yaml:19); current scoped support applies
C00520	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:21	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[5].note	yaml-scalar	"No cycle is possible: B parks at the first row and holds nothing A needs."	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[5].note (scenarios/postgres/03-locking/deadlock-avoidance.yaml:21); current scoped support applies
C00521	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:23	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[6].A	yaml-scalar	"UPDATE accounts SET balance = balance - 10 WHERE id = 1"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[6].A (scenarios/postgres/03-locking/deadlock-avoidance.yaml:23); current scoped support applies
C00522	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:24	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[7].A	yaml-scalar	"UPDATE accounts SET balance = balance + 10 WHERE id = 2"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[7].A (scenarios/postgres/03-locking/deadlock-avoidance.yaml:24); current scoped support applies
C00523	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:25	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[8].A	yaml-scalar	"COMMIT"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[8].A (scenarios/postgres/03-locking/deadlock-avoidance.yaml:25); current scoped support applies
C00524	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:26	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[8].tl	yaml-scalar	"COMMIT → releases both"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[8].tl (scenarios/postgres/03-locking/deadlock-avoidance.yaml:26); current scoped support applies
C00525	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:28	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[9].success	yaml-scalar	"p1"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[9].success (scenarios/postgres/03-locking/deadlock-avoidance.yaml:28); current scoped support applies
C00526	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:29	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[10].B	yaml-scalar	"UPDATE accounts SET balance = balance - 25 WHERE id = 2"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[10].B (scenarios/postgres/03-locking/deadlock-avoidance.yaml:29); current scoped support applies
C00527	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:30	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[11].B	yaml-scalar	"UPDATE accounts SET balance = balance + 25 WHERE id = 1"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[11].B (scenarios/postgres/03-locking/deadlock-avoidance.yaml:30); current scoped support applies
C00528	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:31	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[12].B	yaml-scalar	"COMMIT"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[12].B (scenarios/postgres/03-locking/deadlock-avoidance.yaml:31); current scoped support applies
C00529	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:33	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].A	yaml-scalar	"SELECT owner, balance FROM accounts ORDER BY id"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].A (scenarios/postgres/03-locking/deadlock-avoidance.yaml:33); current scoped support applies
C00530	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:34	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[0].owner	yaml-scalar	"alice"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[0].owner (scenarios/postgres/03-locking/deadlock-avoidance.yaml:34); current scoped support applies
C00531	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:34	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[0].balance	yaml-scalar	"115"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[0].balance (scenarios/postgres/03-locking/deadlock-avoidance.yaml:34); current scoped support applies
C00532	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:34	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[1].owner	yaml-scalar	"bob"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[1].owner (scenarios/postgres/03-locking/deadlock-avoidance.yaml:34); current scoped support applies
C00533	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:34	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[1].balance	yaml-scalar	"85"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[1].balance (scenarios/postgres/03-locking/deadlock-avoidance.yaml:34); current scoped support applies
C00534	base	scenarios/postgres/03-locking/deadlock-avoidance.yaml:35	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].comment	yaml-scalar	"both transfers landed — same workload, zero deadlocks"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].A; scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[0].owner; scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[0].balance; scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[1].owner; scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[1].balance; scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].comment; semantic decisions A1-A10 in audit report
C00535	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:1	scenarios/postgres/03-locking/deadlock-avoidance.yaml#title	yaml-scalar	"Deadlock avoidance: lock rows in a consistent order"	P15	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00536	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:2	scenarios/postgres/03-locking/deadlock-avoidance.yaml#claim	yaml-scalar	"In this two-row schedule both transfers lock rows in id order first. B waits for A, then both commit, leaving balances 115 and 85. Other resources and schedules are not tested."	P15	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00537	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:6	scenarios/postgres/03-locking/deadlock-avoidance.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100), (2, 'bob', 100);\n"	P15	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00538	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:9	scenarios/postgres/03-locking/deadlock-avoidance.yaml#sessions[0]	yaml-scalar	"A"	P15	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00539	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:9	scenarios/postgres/03-locking/deadlock-avoidance.yaml#sessions[1]	yaml-scalar	"B"	P15	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00540	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:11	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[0].note	yaml-scalar	"Both transfers grab *all* their row locks up front, ordered by id."	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00541	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:12	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[1].A	yaml-scalar	"BEGIN"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00542	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:13	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[2].A	yaml-scalar	"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00543	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:14	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[2].tl	yaml-scalar	"SELECT id IN (1,2) … FOR UPDATE → locks both, in id order"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00544	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:16	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[3].B	yaml-scalar	"BEGIN"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00545	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:17	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[4].B	yaml-scalar	"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00546	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:18	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[4].blocks	yaml-scalar	"p1"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00547	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:19	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[4].tl	yaml-scalar	"SELECT id IN (1,2) … FOR UPDATE"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00548	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:21	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[5].note	yaml-scalar	"No cycle is possible: B parks at the first row and holds nothing A needs."	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00549	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:23	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[6].A	yaml-scalar	"UPDATE accounts SET balance = balance - 10 WHERE id = 1"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00550	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:24	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[7].A	yaml-scalar	"UPDATE accounts SET balance = balance + 10 WHERE id = 2"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00551	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:25	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[8].A	yaml-scalar	"COMMIT"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00552	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:26	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[8].tl	yaml-scalar	"COMMIT → releases both"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00553	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:28	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[9].success	yaml-scalar	"p1"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00554	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:29	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[10].B	yaml-scalar	"UPDATE accounts SET balance = balance - 25 WHERE id = 2"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00555	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:30	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[11].B	yaml-scalar	"UPDATE accounts SET balance = balance + 25 WHERE id = 1"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00556	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:31	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[12].B	yaml-scalar	"COMMIT"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00557	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:33	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].A	yaml-scalar	"SELECT owner, balance FROM accounts ORDER BY id"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00558	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:34	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[0].owner	yaml-scalar	"alice"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00559	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:34	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[0].balance	yaml-scalar	"115"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00560	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:34	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[1].owner	yaml-scalar	"bob"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00561	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:34	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].expect[1].balance	yaml-scalar	"85"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00562	current	scenarios/postgres/03-locking/deadlock-avoidance.yaml:35	scenarios/postgres/03-locking/deadlock-avoidance.yaml#steps[13].comment	yaml-scalar	"both transfers committed in this schedule"	P15	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00563	base	scenarios/postgres/03-locking/deadlock.yaml:1	scenarios/postgres/03-locking/deadlock.yaml#title	yaml-scalar	"Deadlock: two transactions, opposite lock order"	P16	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#title (scenarios/postgres/03-locking/deadlock.yaml:1); current scoped support applies
C00564	base	scenarios/postgres/03-locking/deadlock.yaml:2	scenarios/postgres/03-locking/deadlock.yaml#claim	yaml-scalar	"Two transactions locking the same rows in opposite order deadlock; PostgreSQL detects the cycle and aborts one of them with SQLSTATE 40P01 so the other can finish."	P16	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/deadlock.yaml#claim; semantic decisions A1-A10 in audit report
C00565	base	scenarios/postgres/03-locking/deadlock.yaml:6	scenarios/postgres/03-locking/deadlock.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100), (2, 'bob', 100);\n"	P16	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#setup (scenarios/postgres/03-locking/deadlock.yaml:6); current scoped support applies
C00566	base	scenarios/postgres/03-locking/deadlock.yaml:9	scenarios/postgres/03-locking/deadlock.yaml#sessions[0]	yaml-scalar	"A"	P16	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#sessions[0] (scenarios/postgres/03-locking/deadlock.yaml:9); current scoped support applies
C00567	base	scenarios/postgres/03-locking/deadlock.yaml:9	scenarios/postgres/03-locking/deadlock.yaml#sessions[1]	yaml-scalar	"B"	P16	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#sessions[1] (scenarios/postgres/03-locking/deadlock.yaml:9); current scoped support applies
C00568	base	scenarios/postgres/03-locking/deadlock.yaml:11	scenarios/postgres/03-locking/deadlock.yaml#steps[0].A	yaml-scalar	"SET deadlock_timeout = '10s'"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[0].A (scenarios/postgres/03-locking/deadlock.yaml:11); current scoped support applies
C00569	base	scenarios/postgres/03-locking/deadlock.yaml:12	scenarios/postgres/03-locking/deadlock.yaml#steps[0].comment	yaml-scalar	"In production the victim is effectively arbitrary — whichever waiter's deadlock_timeout (default 1s) fires first runs the check and aborts itself. We pin it here so the transcript is reproducible: B checks first."	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/deadlock.yaml#steps[0].A; scenarios/postgres/03-locking/deadlock.yaml#steps[0].comment; semantic decisions A1-A10 in audit report
C00570	base	scenarios/postgres/03-locking/deadlock.yaml:16	scenarios/postgres/03-locking/deadlock.yaml#steps[1].B	yaml-scalar	"SET deadlock_timeout = '50ms'"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[1].B (scenarios/postgres/03-locking/deadlock.yaml:16); current scoped support applies
C00571	base	scenarios/postgres/03-locking/deadlock.yaml:18	scenarios/postgres/03-locking/deadlock.yaml#steps[2].note	yaml-scalar	"A transfers 10 from alice to bob; B transfers 25 from bob to alice."	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[2].note (scenarios/postgres/03-locking/deadlock.yaml:18); current scoped support applies
C00572	base	scenarios/postgres/03-locking/deadlock.yaml:19	scenarios/postgres/03-locking/deadlock.yaml#steps[3].A	yaml-scalar	"BEGIN"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[3].A (scenarios/postgres/03-locking/deadlock.yaml:19); current scoped support applies
C00573	base	scenarios/postgres/03-locking/deadlock.yaml:20	scenarios/postgres/03-locking/deadlock.yaml#steps[4].A	yaml-scalar	"UPDATE accounts SET balance = balance - 10 WHERE id = 1"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[4].A (scenarios/postgres/03-locking/deadlock.yaml:20); current scoped support applies
C00574	base	scenarios/postgres/03-locking/deadlock.yaml:21	scenarios/postgres/03-locking/deadlock.yaml#steps[4].comment	yaml-scalar	"A locks alice"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[4].comment (scenarios/postgres/03-locking/deadlock.yaml:21); current scoped support applies
C00575	base	scenarios/postgres/03-locking/deadlock.yaml:22	scenarios/postgres/03-locking/deadlock.yaml#steps[4].tl	yaml-scalar	"locks alice (id=1)"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[4].tl (scenarios/postgres/03-locking/deadlock.yaml:22); current scoped support applies
C00576	base	scenarios/postgres/03-locking/deadlock.yaml:24	scenarios/postgres/03-locking/deadlock.yaml#steps[5].B	yaml-scalar	"BEGIN"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[5].B (scenarios/postgres/03-locking/deadlock.yaml:24); current scoped support applies
C00577	base	scenarios/postgres/03-locking/deadlock.yaml:25	scenarios/postgres/03-locking/deadlock.yaml#steps[6].B	yaml-scalar	"UPDATE accounts SET balance = balance - 25 WHERE id = 2"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[6].B (scenarios/postgres/03-locking/deadlock.yaml:25); current scoped support applies
C00578	base	scenarios/postgres/03-locking/deadlock.yaml:26	scenarios/postgres/03-locking/deadlock.yaml#steps[6].comment	yaml-scalar	"B locks bob"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[6].comment (scenarios/postgres/03-locking/deadlock.yaml:26); current scoped support applies
C00579	base	scenarios/postgres/03-locking/deadlock.yaml:27	scenarios/postgres/03-locking/deadlock.yaml#steps[6].tl	yaml-scalar	"locks bob (id=2)"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[6].tl (scenarios/postgres/03-locking/deadlock.yaml:27); current scoped support applies
C00580	base	scenarios/postgres/03-locking/deadlock.yaml:29	scenarios/postgres/03-locking/deadlock.yaml#steps[7].note	yaml-scalar	"A now needs bob's row (B has it) — it waits."	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[7].note (scenarios/postgres/03-locking/deadlock.yaml:29); current scoped support applies
C00581	base	scenarios/postgres/03-locking/deadlock.yaml:30	scenarios/postgres/03-locking/deadlock.yaml#steps[8].A	yaml-scalar	"UPDATE accounts SET balance = balance + 10 WHERE id = 2"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[8].A (scenarios/postgres/03-locking/deadlock.yaml:30); current scoped support applies
C00582	base	scenarios/postgres/03-locking/deadlock.yaml:31	scenarios/postgres/03-locking/deadlock.yaml#steps[8].blocks	yaml-scalar	"p1"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[8].blocks (scenarios/postgres/03-locking/deadlock.yaml:31); current scoped support applies
C00583	base	scenarios/postgres/03-locking/deadlock.yaml:32	scenarios/postgres/03-locking/deadlock.yaml#steps[8].tl	yaml-scalar	"needs bob (id=2)"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[8].tl (scenarios/postgres/03-locking/deadlock.yaml:32); current scoped support applies
C00584	base	scenarios/postgres/03-locking/deadlock.yaml:34	scenarios/postgres/03-locking/deadlock.yaml#steps[9].note	yaml-scalar	"B now needs alice's row (A has it). A waits for B, B waits for A: a cycle."	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[9].note (scenarios/postgres/03-locking/deadlock.yaml:34); current scoped support applies
C00585	base	scenarios/postgres/03-locking/deadlock.yaml:36	scenarios/postgres/03-locking/deadlock.yaml#steps[10].B.fails	yaml-scalar	"UPDATE accounts SET balance = balance + 25 WHERE id = 1"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[10].B.fails (scenarios/postgres/03-locking/deadlock.yaml:36); current scoped support applies
C00586	base	scenarios/postgres/03-locking/deadlock.yaml:37	scenarios/postgres/03-locking/deadlock.yaml#steps[10].error	yaml-scalar	"40P01"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[10].error (scenarios/postgres/03-locking/deadlock.yaml:37); current scoped support applies
C00587	base	scenarios/postgres/03-locking/deadlock.yaml:38	scenarios/postgres/03-locking/deadlock.yaml#steps[10].comment	yaml-scalar	"deadlock_detected — B is aborted…"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[10].comment (scenarios/postgres/03-locking/deadlock.yaml:38); current scoped support applies
C00588	base	scenarios/postgres/03-locking/deadlock.yaml:39	scenarios/postgres/03-locking/deadlock.yaml#steps[10].tl	yaml-scalar	"needs alice (id=1)"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[10].tl (scenarios/postgres/03-locking/deadlock.yaml:39); current scoped support applies
C00589	base	scenarios/postgres/03-locking/deadlock.yaml:41	scenarios/postgres/03-locking/deadlock.yaml#steps[11].note	yaml-scalar	"The victim's abort frees bob's row, so A's stuck UPDATE completes."	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[11].note (scenarios/postgres/03-locking/deadlock.yaml:41); current scoped support applies
C00590	base	scenarios/postgres/03-locking/deadlock.yaml:42	scenarios/postgres/03-locking/deadlock.yaml#steps[12].success	yaml-scalar	"p1"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[12].success (scenarios/postgres/03-locking/deadlock.yaml:42); current scoped support applies
C00591	base	scenarios/postgres/03-locking/deadlock.yaml:43	scenarios/postgres/03-locking/deadlock.yaml#steps[13].A	yaml-scalar	"COMMIT"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[13].A (scenarios/postgres/03-locking/deadlock.yaml:43); current scoped support applies
C00592	base	scenarios/postgres/03-locking/deadlock.yaml:44	scenarios/postgres/03-locking/deadlock.yaml#steps[14].B	yaml-scalar	"ROLLBACK"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[14].B (scenarios/postgres/03-locking/deadlock.yaml:44); current scoped support applies
C00593	base	scenarios/postgres/03-locking/deadlock.yaml:46	scenarios/postgres/03-locking/deadlock.yaml#steps[15].A	yaml-scalar	"SELECT owner, balance FROM accounts ORDER BY id"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[15].A (scenarios/postgres/03-locking/deadlock.yaml:46); current scoped support applies
C00594	base	scenarios/postgres/03-locking/deadlock.yaml:47	scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[0].owner	yaml-scalar	"alice"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[0].owner (scenarios/postgres/03-locking/deadlock.yaml:47); current scoped support applies
C00595	base	scenarios/postgres/03-locking/deadlock.yaml:47	scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[0].balance	yaml-scalar	"90"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[0].balance (scenarios/postgres/03-locking/deadlock.yaml:47); current scoped support applies
C00596	base	scenarios/postgres/03-locking/deadlock.yaml:47	scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[1].owner	yaml-scalar	"bob"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[1].owner (scenarios/postgres/03-locking/deadlock.yaml:47); current scoped support applies
C00597	base	scenarios/postgres/03-locking/deadlock.yaml:47	scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[1].balance	yaml-scalar	"110"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[1].balance (scenarios/postgres/03-locking/deadlock.yaml:47); current scoped support applies
C00598	base	scenarios/postgres/03-locking/deadlock.yaml:48	scenarios/postgres/03-locking/deadlock.yaml#steps[15].comment	yaml-scalar	"A's transfer survived; B's evaporated — retry it"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/deadlock.yaml#steps[15].A; scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[0].owner; scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[0].balance; scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[1].owner; scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[1].balance; scenarios/postgres/03-locking/deadlock.yaml#steps[15].comment; semantic decisions A1-A10 in audit report
C00599	current	scenarios/postgres/03-locking/deadlock.yaml:1	scenarios/postgres/03-locking/deadlock.yaml#title	yaml-scalar	"Deadlock: two transactions, opposite lock order"	P16	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00600	current	scenarios/postgres/03-locking/deadlock.yaml:2	scenarios/postgres/03-locking/deadlock.yaml#claim	yaml-scalar	"In this opposite-order two-row schedule, with B's detection timeout shorter than A's, B gets 40P01, A completes and commits, and the asserted balances retain only A's transfer. General victim choice is not guaranteed."	P16	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00601	current	scenarios/postgres/03-locking/deadlock.yaml:6	scenarios/postgres/03-locking/deadlock.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100), (2, 'bob', 100);\n"	P16	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00602	current	scenarios/postgres/03-locking/deadlock.yaml:9	scenarios/postgres/03-locking/deadlock.yaml#sessions[0]	yaml-scalar	"A"	P16	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00603	current	scenarios/postgres/03-locking/deadlock.yaml:9	scenarios/postgres/03-locking/deadlock.yaml#sessions[1]	yaml-scalar	"B"	P16	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00604	current	scenarios/postgres/03-locking/deadlock.yaml:11	scenarios/postgres/03-locking/deadlock.yaml#steps[0].A	yaml-scalar	"SET deadlock_timeout = '10s'"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00605	current	scenarios/postgres/03-locking/deadlock.yaml:12	scenarios/postgres/03-locking/deadlock.yaml#steps[0].comment	yaml-scalar	"General victim choice must not be relied on. These unequal detection timeouts make B the observed victim in this controlled schedule; no universal minimum cycle duration is asserted."	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00606	current	scenarios/postgres/03-locking/deadlock.yaml:16	scenarios/postgres/03-locking/deadlock.yaml#steps[1].B	yaml-scalar	"SET deadlock_timeout = '50ms'"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00607	current	scenarios/postgres/03-locking/deadlock.yaml:18	scenarios/postgres/03-locking/deadlock.yaml#steps[2].note	yaml-scalar	"A transfers 10 from alice to bob; B transfers 25 from bob to alice."	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00608	current	scenarios/postgres/03-locking/deadlock.yaml:19	scenarios/postgres/03-locking/deadlock.yaml#steps[3].A	yaml-scalar	"BEGIN"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00609	current	scenarios/postgres/03-locking/deadlock.yaml:20	scenarios/postgres/03-locking/deadlock.yaml#steps[4].A	yaml-scalar	"UPDATE accounts SET balance = balance - 10 WHERE id = 1"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00610	current	scenarios/postgres/03-locking/deadlock.yaml:21	scenarios/postgres/03-locking/deadlock.yaml#steps[4].comment	yaml-scalar	"A locks alice"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00611	current	scenarios/postgres/03-locking/deadlock.yaml:22	scenarios/postgres/03-locking/deadlock.yaml#steps[4].tl	yaml-scalar	"locks alice (id=1)"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00612	current	scenarios/postgres/03-locking/deadlock.yaml:24	scenarios/postgres/03-locking/deadlock.yaml#steps[5].B	yaml-scalar	"BEGIN"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00613	current	scenarios/postgres/03-locking/deadlock.yaml:25	scenarios/postgres/03-locking/deadlock.yaml#steps[6].B	yaml-scalar	"UPDATE accounts SET balance = balance - 25 WHERE id = 2"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00614	current	scenarios/postgres/03-locking/deadlock.yaml:26	scenarios/postgres/03-locking/deadlock.yaml#steps[6].comment	yaml-scalar	"B locks bob"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00615	current	scenarios/postgres/03-locking/deadlock.yaml:27	scenarios/postgres/03-locking/deadlock.yaml#steps[6].tl	yaml-scalar	"locks bob (id=2)"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00616	current	scenarios/postgres/03-locking/deadlock.yaml:29	scenarios/postgres/03-locking/deadlock.yaml#steps[7].note	yaml-scalar	"A now needs bob's row (B has it) — it waits."	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00617	current	scenarios/postgres/03-locking/deadlock.yaml:30	scenarios/postgres/03-locking/deadlock.yaml#steps[8].A	yaml-scalar	"UPDATE accounts SET balance = balance + 10 WHERE id = 2"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00618	current	scenarios/postgres/03-locking/deadlock.yaml:31	scenarios/postgres/03-locking/deadlock.yaml#steps[8].blocks	yaml-scalar	"p1"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00619	current	scenarios/postgres/03-locking/deadlock.yaml:32	scenarios/postgres/03-locking/deadlock.yaml#steps[8].tl	yaml-scalar	"needs bob (id=2)"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00620	current	scenarios/postgres/03-locking/deadlock.yaml:34	scenarios/postgres/03-locking/deadlock.yaml#steps[9].note	yaml-scalar	"B now needs alice's row (A has it). A waits for B, B waits for A: a cycle."	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00621	current	scenarios/postgres/03-locking/deadlock.yaml:36	scenarios/postgres/03-locking/deadlock.yaml#steps[10].B.fails	yaml-scalar	"UPDATE accounts SET balance = balance + 25 WHERE id = 1"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00622	current	scenarios/postgres/03-locking/deadlock.yaml:37	scenarios/postgres/03-locking/deadlock.yaml#steps[10].error	yaml-scalar	"40P01"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00623	current	scenarios/postgres/03-locking/deadlock.yaml:38	scenarios/postgres/03-locking/deadlock.yaml#steps[10].comment	yaml-scalar	"deadlock_detected — B is aborted…"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00624	current	scenarios/postgres/03-locking/deadlock.yaml:39	scenarios/postgres/03-locking/deadlock.yaml#steps[10].tl	yaml-scalar	"needs alice (id=1)"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00625	current	scenarios/postgres/03-locking/deadlock.yaml:41	scenarios/postgres/03-locking/deadlock.yaml#steps[11].note	yaml-scalar	"The victim's abort frees bob's row, so A's stuck UPDATE completes."	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00626	current	scenarios/postgres/03-locking/deadlock.yaml:42	scenarios/postgres/03-locking/deadlock.yaml#steps[12].success	yaml-scalar	"p1"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 2"}; B={"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00627	current	scenarios/postgres/03-locking/deadlock.yaml:43	scenarios/postgres/03-locking/deadlock.yaml#steps[13].A	yaml-scalar	"COMMIT"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00628	current	scenarios/postgres/03-locking/deadlock.yaml:44	scenarios/postgres/03-locking/deadlock.yaml#steps[14].B	yaml-scalar	"ROLLBACK"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"explicit failed (database effects aborted; awaits transaction end)","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00629	current	scenarios/postgres/03-locking/deadlock.yaml:46	scenarios/postgres/03-locking/deadlock.yaml#steps[15].A	yaml-scalar	"SELECT owner, balance FROM accounts ORDER BY id"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00630	current	scenarios/postgres/03-locking/deadlock.yaml:47	scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[0].owner	yaml-scalar	"alice"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00631	current	scenarios/postgres/03-locking/deadlock.yaml:47	scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[0].balance	yaml-scalar	"90"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00632	current	scenarios/postgres/03-locking/deadlock.yaml:47	scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[1].owner	yaml-scalar	"bob"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00633	current	scenarios/postgres/03-locking/deadlock.yaml:47	scenarios/postgres/03-locking/deadlock.yaml#steps[15].expect[1].balance	yaml-scalar	"110"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00634	current	scenarios/postgres/03-locking/deadlock.yaml:48	scenarios/postgres/03-locking/deadlock.yaml#steps[15].comment	yaml-scalar	"A's transfer committed; B's database changes did not commit"	P16	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"10s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"50ms"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00635	base	scenarios/postgres/03-locking/fk-key-share.yaml:1	scenarios/postgres/03-locking/fk-key-share.yaml#title	yaml-scalar	"Foreign keys take row locks for you"	P17	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#title (scenarios/postgres/03-locking/fk-key-share.yaml:1); current scoped support applies
C00636	base	scenarios/postgres/03-locking/fk-key-share.yaml:2	scenarios/postgres/03-locking/fk-key-share.yaml#claim	yaml-scalar	"INSERTing a child row locks the referenced parent row with FOR KEY SHARE: updating the parent's other columns still works, but deleting it blocks — and then fails the moment the child commits."	P17	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/fk-key-share.yaml#claim; semantic decisions A1-A10 in audit report
C00637	base	scenarios/postgres/03-locking/fk-key-share.yaml:6	scenarios/postgres/03-locking/fk-key-share.yaml#setup	yaml-scalar	"CREATE TABLE customers (id int PRIMARY KEY, name text NOT NULL, balance int NOT NULL);\nCREATE TABLE orders (id int PRIMARY KEY, customer_id int NOT NULL REFERENCES customers);\nINSERT INTO customers VALUES (1, 'alice', 100);\n"	P17	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#setup (scenarios/postgres/03-locking/fk-key-share.yaml:6); current scoped support applies
C00638	base	scenarios/postgres/03-locking/fk-key-share.yaml:10	scenarios/postgres/03-locking/fk-key-share.yaml#sessions[0]	yaml-scalar	"A"	P17	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#sessions[0] (scenarios/postgres/03-locking/fk-key-share.yaml:10); current scoped support applies
C00639	base	scenarios/postgres/03-locking/fk-key-share.yaml:10	scenarios/postgres/03-locking/fk-key-share.yaml#sessions[1]	yaml-scalar	"B"	P17	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#sessions[1] (scenarios/postgres/03-locking/fk-key-share.yaml:10); current scoped support applies
C00640	base	scenarios/postgres/03-locking/fk-key-share.yaml:12	scenarios/postgres/03-locking/fk-key-share.yaml#steps[0].A	yaml-scalar	"BEGIN"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[0].A (scenarios/postgres/03-locking/fk-key-share.yaml:12); current scoped support applies
C00641	base	scenarios/postgres/03-locking/fk-key-share.yaml:13	scenarios/postgres/03-locking/fk-key-share.yaml#steps[1].A	yaml-scalar	"INSERT INTO orders VALUES (1, 1)"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[1].A (scenarios/postgres/03-locking/fk-key-share.yaml:13); current scoped support applies
C00642	base	scenarios/postgres/03-locking/fk-key-share.yaml:14	scenarios/postgres/03-locking/fk-key-share.yaml#steps[1].comment	yaml-scalar	"FK check locks customers row 1 FOR KEY SHARE"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[1].comment (scenarios/postgres/03-locking/fk-key-share.yaml:14); current scoped support applies
C00643	base	scenarios/postgres/03-locking/fk-key-share.yaml:15	scenarios/postgres/03-locking/fk-key-share.yaml#steps[1].tl	yaml-scalar	"INSERT child → FK locks parent FOR KEY SHARE"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[1].tl (scenarios/postgres/03-locking/fk-key-share.yaml:15); current scoped support applies
C00644	base	scenarios/postgres/03-locking/fk-key-share.yaml:17	scenarios/postgres/03-locking/fk-key-share.yaml#steps[2].note	yaml-scalar	"FOR KEY SHARE doesn't mind non-key updates — B can change the balance."	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[2].note (scenarios/postgres/03-locking/fk-key-share.yaml:17); current scoped support applies
C00645	base	scenarios/postgres/03-locking/fk-key-share.yaml:18	scenarios/postgres/03-locking/fk-key-share.yaml#steps[3].B	yaml-scalar	"UPDATE customers SET balance = 50 WHERE id = 1"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[3].B (scenarios/postgres/03-locking/fk-key-share.yaml:18); current scoped support applies
C00646	base	scenarios/postgres/03-locking/fk-key-share.yaml:19	scenarios/postgres/03-locking/fk-key-share.yaml#steps[3].tl	yaml-scalar	"UPDATE parent balance → allowed (non-key)"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[3].tl (scenarios/postgres/03-locking/fk-key-share.yaml:19); current scoped support applies
C00647	base	scenarios/postgres/03-locking/fk-key-share.yaml:21	scenarios/postgres/03-locking/fk-key-share.yaml#steps[4].note	yaml-scalar	"But DELETE needs the strongest row lock (FOR UPDATE) — B has to wait."	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[4].note (scenarios/postgres/03-locking/fk-key-share.yaml:21); current scoped support applies
C00648	base	scenarios/postgres/03-locking/fk-key-share.yaml:22	scenarios/postgres/03-locking/fk-key-share.yaml#steps[5].B	yaml-scalar	"DELETE FROM customers WHERE id = 1"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[5].B (scenarios/postgres/03-locking/fk-key-share.yaml:22); current scoped support applies
C00649	base	scenarios/postgres/03-locking/fk-key-share.yaml:23	scenarios/postgres/03-locking/fk-key-share.yaml#steps[5].blocks	yaml-scalar	"p1"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[5].blocks (scenarios/postgres/03-locking/fk-key-share.yaml:23); current scoped support applies
C00650	base	scenarios/postgres/03-locking/fk-key-share.yaml:24	scenarios/postgres/03-locking/fk-key-share.yaml#steps[5].tl	yaml-scalar	"DELETE parent → needs FOR UPDATE"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[5].tl (scenarios/postgres/03-locking/fk-key-share.yaml:24); current scoped support applies
C00651	base	scenarios/postgres/03-locking/fk-key-share.yaml:26	scenarios/postgres/03-locking/fk-key-share.yaml#steps[6].A	yaml-scalar	"COMMIT"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[6].A (scenarios/postgres/03-locking/fk-key-share.yaml:26); current scoped support applies
C00652	base	scenarios/postgres/03-locking/fk-key-share.yaml:27	scenarios/postgres/03-locking/fk-key-share.yaml#steps[6].tl	yaml-scalar	"COMMIT"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[6].tl (scenarios/postgres/03-locking/fk-key-share.yaml:27); current scoped support applies
C00653	base	scenarios/postgres/03-locking/fk-key-share.yaml:29	scenarios/postgres/03-locking/fk-key-share.yaml#steps[7].note	yaml-scalar	"A's order is now committed, so B's DELETE resumes — straight into the FK."	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[7].note (scenarios/postgres/03-locking/fk-key-share.yaml:29); current scoped support applies
C00654	base	scenarios/postgres/03-locking/fk-key-share.yaml:30	scenarios/postgres/03-locking/fk-key-share.yaml#steps[8].failure	yaml-scalar	"p1"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[8].failure (scenarios/postgres/03-locking/fk-key-share.yaml:30); current scoped support applies
C00655	base	scenarios/postgres/03-locking/fk-key-share.yaml:31	scenarios/postgres/03-locking/fk-key-share.yaml#steps[8].error	yaml-scalar	"23503"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[8].error (scenarios/postgres/03-locking/fk-key-share.yaml:31); current scoped support applies
C00656	base	scenarios/postgres/03-locking/fk-key-share.yaml:33	scenarios/postgres/03-locking/fk-key-share.yaml#steps[9].B	yaml-scalar	"SELECT balance FROM customers WHERE id = 1"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[9].B (scenarios/postgres/03-locking/fk-key-share.yaml:33); current scoped support applies
C00657	base	scenarios/postgres/03-locking/fk-key-share.yaml:34	scenarios/postgres/03-locking/fk-key-share.yaml#steps[9].expect[0].balance	yaml-scalar	"50"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[9].expect[0].balance (scenarios/postgres/03-locking/fk-key-share.yaml:34); current scoped support applies
C00658	base	scenarios/postgres/03-locking/fk-key-share.yaml:35	scenarios/postgres/03-locking/fk-key-share.yaml#steps[9].comment	yaml-scalar	"the parent survived, with B's earlier non-key update intact"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/fk-key-share.yaml#steps[9].comment (scenarios/postgres/03-locking/fk-key-share.yaml:35); current scoped support applies
C00659	current	scenarios/postgres/03-locking/fk-key-share.yaml:1	scenarios/postgres/03-locking/fk-key-share.yaml#title	yaml-scalar	"Foreign keys take row locks for you"	P17	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00660	current	scenarios/postgres/03-locking/fk-key-share.yaml:2	scenarios/postgres/03-locking/fk-key-share.yaml#claim	yaml-scalar	"In this immediate foreign-key insert schedule, B's non-key parent UPDATE succeeds, its DELETE waits for A, and after A commits the DELETE fails with 23503. This conflict signature is consistent with FOR KEY SHARE."	P17	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00661	current	scenarios/postgres/03-locking/fk-key-share.yaml:6	scenarios/postgres/03-locking/fk-key-share.yaml#setup	yaml-scalar	"CREATE TABLE customers (id int PRIMARY KEY, name text NOT NULL, balance int NOT NULL);\nCREATE TABLE orders (id int PRIMARY KEY, customer_id int NOT NULL REFERENCES customers);\nINSERT INTO customers VALUES (1, 'alice', 100);\n"	P17	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00662	current	scenarios/postgres/03-locking/fk-key-share.yaml:10	scenarios/postgres/03-locking/fk-key-share.yaml#sessions[0]	yaml-scalar	"A"	P17	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00663	current	scenarios/postgres/03-locking/fk-key-share.yaml:10	scenarios/postgres/03-locking/fk-key-share.yaml#sessions[1]	yaml-scalar	"B"	P17	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00664	current	scenarios/postgres/03-locking/fk-key-share.yaml:12	scenarios/postgres/03-locking/fk-key-share.yaml#steps[0].A	yaml-scalar	"BEGIN"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00665	current	scenarios/postgres/03-locking/fk-key-share.yaml:13	scenarios/postgres/03-locking/fk-key-share.yaml#steps[1].A	yaml-scalar	"INSERT INTO orders VALUES (1, 1)"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00666	current	scenarios/postgres/03-locking/fk-key-share.yaml:14	scenarios/postgres/03-locking/fk-key-share.yaml#steps[1].comment	yaml-scalar	"FK check locks customers row 1 FOR KEY SHARE"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00667	current	scenarios/postgres/03-locking/fk-key-share.yaml:15	scenarios/postgres/03-locking/fk-key-share.yaml#steps[1].tl	yaml-scalar	"INSERT child → FK locks parent FOR KEY SHARE"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00668	current	scenarios/postgres/03-locking/fk-key-share.yaml:17	scenarios/postgres/03-locking/fk-key-share.yaml#steps[2].note	yaml-scalar	"FOR KEY SHARE doesn't mind non-key updates — B can change the balance."	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00669	current	scenarios/postgres/03-locking/fk-key-share.yaml:18	scenarios/postgres/03-locking/fk-key-share.yaml#steps[3].B	yaml-scalar	"UPDATE customers SET balance = 50 WHERE id = 1"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00670	current	scenarios/postgres/03-locking/fk-key-share.yaml:19	scenarios/postgres/03-locking/fk-key-share.yaml#steps[3].tl	yaml-scalar	"UPDATE parent balance → allowed (non-key)"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00671	current	scenarios/postgres/03-locking/fk-key-share.yaml:21	scenarios/postgres/03-locking/fk-key-share.yaml#steps[4].note	yaml-scalar	"But DELETE needs the strongest row lock (FOR UPDATE) — B has to wait."	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00672	current	scenarios/postgres/03-locking/fk-key-share.yaml:22	scenarios/postgres/03-locking/fk-key-share.yaml#steps[5].B	yaml-scalar	"DELETE FROM customers WHERE id = 1"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00673	current	scenarios/postgres/03-locking/fk-key-share.yaml:23	scenarios/postgres/03-locking/fk-key-share.yaml#steps[5].blocks	yaml-scalar	"p1"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00674	current	scenarios/postgres/03-locking/fk-key-share.yaml:24	scenarios/postgres/03-locking/fk-key-share.yaml#steps[5].tl	yaml-scalar	"DELETE parent → needs FOR UPDATE"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00675	current	scenarios/postgres/03-locking/fk-key-share.yaml:26	scenarios/postgres/03-locking/fk-key-share.yaml#steps[6].A	yaml-scalar	"COMMIT"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00676	current	scenarios/postgres/03-locking/fk-key-share.yaml:27	scenarios/postgres/03-locking/fk-key-share.yaml#steps[6].tl	yaml-scalar	"COMMIT"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00677	current	scenarios/postgres/03-locking/fk-key-share.yaml:29	scenarios/postgres/03-locking/fk-key-share.yaml#steps[7].note	yaml-scalar	"A's order is now committed, so B's DELETE resumes — straight into the FK."	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00678	current	scenarios/postgres/03-locking/fk-key-share.yaml:30	scenarios/postgres/03-locking/fk-key-share.yaml#steps[8].failure	yaml-scalar	"p1"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00679	current	scenarios/postgres/03-locking/fk-key-share.yaml:31	scenarios/postgres/03-locking/fk-key-share.yaml#steps[8].error	yaml-scalar	"23503"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"DELETE FROM customers WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00680	current	scenarios/postgres/03-locking/fk-key-share.yaml:33	scenarios/postgres/03-locking/fk-key-share.yaml#steps[9].B	yaml-scalar	"SELECT balance FROM customers WHERE id = 1"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00681	current	scenarios/postgres/03-locking/fk-key-share.yaml:34	scenarios/postgres/03-locking/fk-key-share.yaml#steps[9].expect[0].balance	yaml-scalar	"50"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00682	current	scenarios/postgres/03-locking/fk-key-share.yaml:35	scenarios/postgres/03-locking/fk-key-share.yaml#steps[9].comment	yaml-scalar	"the parent survived, with B's earlier non-key update intact"	P17	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00683	base	scenarios/postgres/03-locking/for-update-blocks.yaml:1	scenarios/postgres/03-locking/for-update-blocks.yaml#title	yaml-scalar	"SELECT FOR UPDATE blocks writers, never readers"	P18	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/for-update-blocks.yaml#title; semantic decisions A1-A10 in audit report
C00684	base	scenarios/postgres/03-locking/for-update-blocks.yaml:2	scenarios/postgres/03-locking/for-update-blocks.yaml#claim	yaml-scalar	"A row locked with SELECT FOR UPDATE can still be read by everyone, but any write to it waits until the locking transaction ends."	P18	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/for-update-blocks.yaml#claim; semantic decisions A1-A10 in audit report
C00685	base	scenarios/postgres/03-locking/for-update-blocks.yaml:5	scenarios/postgres/03-locking/for-update-blocks.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P18	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#setup (scenarios/postgres/03-locking/for-update-blocks.yaml:6); current scoped support applies
C00686	base	scenarios/postgres/03-locking/for-update-blocks.yaml:8	scenarios/postgres/03-locking/for-update-blocks.yaml#sessions[0]	yaml-scalar	"A"	P18	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#sessions[0] (scenarios/postgres/03-locking/for-update-blocks.yaml:9); current scoped support applies
C00687	base	scenarios/postgres/03-locking/for-update-blocks.yaml:8	scenarios/postgres/03-locking/for-update-blocks.yaml#sessions[1]	yaml-scalar	"B"	P18	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#sessions[1] (scenarios/postgres/03-locking/for-update-blocks.yaml:9); current scoped support applies
C00688	base	scenarios/postgres/03-locking/for-update-blocks.yaml:10	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[0].A	yaml-scalar	"BEGIN"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[0].A (scenarios/postgres/03-locking/for-update-blocks.yaml:11); current scoped support applies
C00689	base	scenarios/postgres/03-locking/for-update-blocks.yaml:11	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[1].A	yaml-scalar	"SELECT * FROM accounts WHERE id = 1 FOR UPDATE"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[1].A (scenarios/postgres/03-locking/for-update-blocks.yaml:12); current scoped support applies
C00690	base	scenarios/postgres/03-locking/for-update-blocks.yaml:12	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[1].tl	yaml-scalar	"SELECT … FOR UPDATE (locks the row)"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[1].tl (scenarios/postgres/03-locking/for-update-blocks.yaml:13); current scoped support applies
C00691	base	scenarios/postgres/03-locking/for-update-blocks.yaml:14	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[2].note	yaml-scalar	"Reading the locked row costs B nothing — MVCC readers don't take row locks."	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/for-update-blocks.yaml#steps[2].note; semantic decisions A1-A10 in audit report
C00692	base	scenarios/postgres/03-locking/for-update-blocks.yaml:15	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[3].B	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[3].B (scenarios/postgres/03-locking/for-update-blocks.yaml:16); current scoped support applies
C00693	base	scenarios/postgres/03-locking/for-update-blocks.yaml:16	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[3].expect[0].balance	yaml-scalar	"100"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[3].expect[0].balance (scenarios/postgres/03-locking/for-update-blocks.yaml:17); current scoped support applies
C00694	base	scenarios/postgres/03-locking/for-update-blocks.yaml:17	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[3].tl	yaml-scalar	"SELECT balance → 100 (readers don't block)"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/for-update-blocks.yaml#steps[3].B; scenarios/postgres/03-locking/for-update-blocks.yaml#steps[3].expect[0].balance; scenarios/postgres/03-locking/for-update-blocks.yaml#steps[3].tl; semantic decisions A1-A10 in audit report
C00695	base	scenarios/postgres/03-locking/for-update-blocks.yaml:19	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[4].note	yaml-scalar	"Writing to it is another story: B's UPDATE must wait for A."	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[4].note (scenarios/postgres/03-locking/for-update-blocks.yaml:20); current scoped support applies
C00696	base	scenarios/postgres/03-locking/for-update-blocks.yaml:21	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[5].B	yaml-scalar	"UPDATE accounts SET balance = balance - 10 WHERE id = 1"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[5].B (scenarios/postgres/03-locking/for-update-blocks.yaml:22); current scoped support applies
C00697	base	scenarios/postgres/03-locking/for-update-blocks.yaml:22	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[5].blocks	yaml-scalar	"p1"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[5].blocks (scenarios/postgres/03-locking/for-update-blocks.yaml:23); current scoped support applies
C00698	base	scenarios/postgres/03-locking/for-update-blocks.yaml:23	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[5].tl	yaml-scalar	"UPDATE -10"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[5].tl (scenarios/postgres/03-locking/for-update-blocks.yaml:24); current scoped support applies
C00699	base	scenarios/postgres/03-locking/for-update-blocks.yaml:25	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[6].A	yaml-scalar	"UPDATE accounts SET balance = 150 WHERE id = 1"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[6].A (scenarios/postgres/03-locking/for-update-blocks.yaml:26); current scoped support applies
C00700	base	scenarios/postgres/03-locking/for-update-blocks.yaml:26	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[7].A	yaml-scalar	"COMMIT"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[7].A (scenarios/postgres/03-locking/for-update-blocks.yaml:27); current scoped support applies
C00701	base	scenarios/postgres/03-locking/for-update-blocks.yaml:27	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[7].comment	yaml-scalar	"releases the row lock"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[7].comment (scenarios/postgres/03-locking/for-update-blocks.yaml:28); current scoped support applies
C00702	base	scenarios/postgres/03-locking/for-update-blocks.yaml:28	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[7].tl	yaml-scalar	"COMMIT (releases the lock)"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[7].tl (scenarios/postgres/03-locking/for-update-blocks.yaml:29); current scoped support applies
C00703	base	scenarios/postgres/03-locking/for-update-blocks.yaml:30	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[8].success	yaml-scalar	"p1"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[8].success (scenarios/postgres/03-locking/for-update-blocks.yaml:31); current scoped support applies
C00704	base	scenarios/postgres/03-locking/for-update-blocks.yaml:31	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[9].B	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[9].B (scenarios/postgres/03-locking/for-update-blocks.yaml:32); current scoped support applies
C00705	base	scenarios/postgres/03-locking/for-update-blocks.yaml:32	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[9].expect[0].balance	yaml-scalar	"140"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[9].expect[0].balance (scenarios/postgres/03-locking/for-update-blocks.yaml:33); current scoped support applies
C00706	base	scenarios/postgres/03-locking/for-update-blocks.yaml:33	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[9].comment	yaml-scalar	"B's -10 applied on top of A's committed 150"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/for-update-blocks.yaml#steps[9].comment (scenarios/postgres/03-locking/for-update-blocks.yaml:34); current scoped support applies
C00707	current	scenarios/postgres/03-locking/for-update-blocks.yaml:1	scenarios/postgres/03-locking/for-update-blocks.yaml#title	yaml-scalar	"FOR UPDATE permits an ordinary read while a conflicting UPDATE waits"	P18	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00708	current	scenarios/postgres/03-locking/for-update-blocks.yaml:2	scenarios/postgres/03-locking/for-update-blocks.yaml#claim	yaml-scalar	"In this Read Committed schedule B's ordinary SELECT reads 100 while A holds FOR UPDATE; B's UPDATE waits, then uses A's committed 150 to leave 140. Locking reads can conflict; table-lock waits are not excluded."	P18	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00709	current	scenarios/postgres/03-locking/for-update-blocks.yaml:6	scenarios/postgres/03-locking/for-update-blocks.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P18	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00710	current	scenarios/postgres/03-locking/for-update-blocks.yaml:9	scenarios/postgres/03-locking/for-update-blocks.yaml#sessions[0]	yaml-scalar	"A"	P18	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00711	current	scenarios/postgres/03-locking/for-update-blocks.yaml:9	scenarios/postgres/03-locking/for-update-blocks.yaml#sessions[1]	yaml-scalar	"B"	P18	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00712	current	scenarios/postgres/03-locking/for-update-blocks.yaml:11	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[0].A	yaml-scalar	"BEGIN"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00713	current	scenarios/postgres/03-locking/for-update-blocks.yaml:12	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[1].A	yaml-scalar	"SELECT * FROM accounts WHERE id = 1 FOR UPDATE"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00714	current	scenarios/postgres/03-locking/for-update-blocks.yaml:13	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[1].tl	yaml-scalar	"SELECT … FOR UPDATE (locks the row)"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00715	current	scenarios/postgres/03-locking/for-update-blocks.yaml:15	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[2].note	yaml-scalar	"B's ordinary SELECT reads the row without a conflicting row-lock request; cost is not measured."	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00716	current	scenarios/postgres/03-locking/for-update-blocks.yaml:16	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[3].B	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00717	current	scenarios/postgres/03-locking/for-update-blocks.yaml:17	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[3].expect[0].balance	yaml-scalar	"100"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00718	current	scenarios/postgres/03-locking/for-update-blocks.yaml:18	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[3].tl	yaml-scalar	"ordinary SELECT → 100"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00719	current	scenarios/postgres/03-locking/for-update-blocks.yaml:20	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[4].note	yaml-scalar	"Writing to it is another story: B's UPDATE must wait for A."	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00720	current	scenarios/postgres/03-locking/for-update-blocks.yaml:22	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[5].B	yaml-scalar	"UPDATE accounts SET balance = balance - 10 WHERE id = 1"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00721	current	scenarios/postgres/03-locking/for-update-blocks.yaml:23	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[5].blocks	yaml-scalar	"p1"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00722	current	scenarios/postgres/03-locking/for-update-blocks.yaml:24	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[5].tl	yaml-scalar	"UPDATE -10"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00723	current	scenarios/postgres/03-locking/for-update-blocks.yaml:26	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[6].A	yaml-scalar	"UPDATE accounts SET balance = 150 WHERE id = 1"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00724	current	scenarios/postgres/03-locking/for-update-blocks.yaml:27	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[7].A	yaml-scalar	"COMMIT"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00725	current	scenarios/postgres/03-locking/for-update-blocks.yaml:28	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[7].comment	yaml-scalar	"releases the row lock"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00726	current	scenarios/postgres/03-locking/for-update-blocks.yaml:29	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[7].tl	yaml-scalar	"COMMIT (releases the lock)"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00727	current	scenarios/postgres/03-locking/for-update-blocks.yaml:31	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[8].success	yaml-scalar	"p1"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance - 10 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00728	current	scenarios/postgres/03-locking/for-update-blocks.yaml:32	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[9].B	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00729	current	scenarios/postgres/03-locking/for-update-blocks.yaml:33	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[9].expect[0].balance	yaml-scalar	"140"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00730	current	scenarios/postgres/03-locking/for-update-blocks.yaml:34	scenarios/postgres/03-locking/for-update-blocks.yaml#steps[9].comment	yaml-scalar	"B's -10 applied on top of A's committed 150"	P18	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00731	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:1	scenarios/postgres/03-locking/lock-mode-matrix.yaml#title	yaml-scalar	"The four row-lock modes, from friendly to exclusive"	P19	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#title (scenarios/postgres/03-locking/lock-mode-matrix.yaml:1); current scoped support applies
C00732	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:2	scenarios/postgres/03-locking/lock-mode-matrix.yaml#claim	yaml-scalar	"FOR KEY SHARE < FOR SHARE < FOR NO KEY UPDATE < FOR UPDATE: two share-mode locks coexist, but a share lock still stops writers, and FOR UPDATE stops everything."	P19	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/lock-mode-matrix.yaml#claim; semantic decisions A1-A10 in audit report
C00733	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:6	scenarios/postgres/03-locking/lock-mode-matrix.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P19	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#setup (scenarios/postgres/03-locking/lock-mode-matrix.yaml:6); current scoped support applies
C00734	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:9	scenarios/postgres/03-locking/lock-mode-matrix.yaml#sessions[0]	yaml-scalar	"A"	P19	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#sessions[0] (scenarios/postgres/03-locking/lock-mode-matrix.yaml:9); current scoped support applies
C00735	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:9	scenarios/postgres/03-locking/lock-mode-matrix.yaml#sessions[1]	yaml-scalar	"B"	P19	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#sessions[1] (scenarios/postgres/03-locking/lock-mode-matrix.yaml:9); current scoped support applies
C00736	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:11	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[0].note	yaml-scalar	"Two FOR SHARE locks on the same row coexist happily…"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[0].note (scenarios/postgres/03-locking/lock-mode-matrix.yaml:11); current scoped support applies
C00737	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:12	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[1].A	yaml-scalar	"BEGIN"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[1].A (scenarios/postgres/03-locking/lock-mode-matrix.yaml:12); current scoped support applies
C00738	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:13	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[2].A	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR SHARE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[2].A (scenarios/postgres/03-locking/lock-mode-matrix.yaml:13); current scoped support applies
C00739	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:14	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[2].tl	yaml-scalar	"SELECT … FOR SHARE (A)"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[2].tl (scenarios/postgres/03-locking/lock-mode-matrix.yaml:14); current scoped support applies
C00740	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:15	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[3].B	yaml-scalar	"BEGIN"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[3].B (scenarios/postgres/03-locking/lock-mode-matrix.yaml:15); current scoped support applies
C00741	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:16	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[4].B	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR SHARE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[4].B (scenarios/postgres/03-locking/lock-mode-matrix.yaml:16); current scoped support applies
C00742	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:17	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[4].tl	yaml-scalar	"SELECT … FOR SHARE (B) → coexists"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[4].tl (scenarios/postgres/03-locking/lock-mode-matrix.yaml:17); current scoped support applies
C00743	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:18	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[5].B	yaml-scalar	"COMMIT"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[5].B (scenarios/postgres/03-locking/lock-mode-matrix.yaml:18); current scoped support applies
C00744	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:20	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[6].note	yaml-scalar	"…but FOR SHARE still blocks a plain UPDATE (which takes FOR NO KEY UPDATE)."	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[6].note (scenarios/postgres/03-locking/lock-mode-matrix.yaml:20); current scoped support applies
C00745	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:21	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[7].B	yaml-scalar	"UPDATE accounts SET balance = 200 WHERE id = 1"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[7].B (scenarios/postgres/03-locking/lock-mode-matrix.yaml:21); current scoped support applies
C00746	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:22	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[7].blocks	yaml-scalar	"p1"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[7].blocks (scenarios/postgres/03-locking/lock-mode-matrix.yaml:22); current scoped support applies
C00747	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:23	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[7].tl	yaml-scalar	"UPDATE → FOR NO KEY UPDATE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[7].tl (scenarios/postgres/03-locking/lock-mode-matrix.yaml:23); current scoped support applies
C00748	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:24	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[8].A	yaml-scalar	"COMMIT"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[8].A (scenarios/postgres/03-locking/lock-mode-matrix.yaml:24); current scoped support applies
C00749	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:25	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[8].tl	yaml-scalar	"COMMIT (releases A's FOR SHARE)"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[8].tl (scenarios/postgres/03-locking/lock-mode-matrix.yaml:25); current scoped support applies
C00750	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:26	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[9].success	yaml-scalar	"p1"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[9].success (scenarios/postgres/03-locking/lock-mode-matrix.yaml:26); current scoped support applies
C00751	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:28	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[10].note	yaml-scalar	"The weakest lock, FOR KEY SHARE, even coexists with a running UPDATE…"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[10].note (scenarios/postgres/03-locking/lock-mode-matrix.yaml:29); current scoped support applies
C00752	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:29	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[11].A	yaml-scalar	"BEGIN"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[11].A (scenarios/postgres/03-locking/lock-mode-matrix.yaml:30); current scoped support applies
C00753	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:30	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[12].A	yaml-scalar	"UPDATE accounts SET balance = 300 WHERE id = 1"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[12].A (scenarios/postgres/03-locking/lock-mode-matrix.yaml:31); current scoped support applies
C00754	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:31	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[12].tl	yaml-scalar	"UPDATE → FOR NO KEY UPDATE (A)"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[12].tl (scenarios/postgres/03-locking/lock-mode-matrix.yaml:32); current scoped support applies
C00755	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:32	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[13].B	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR KEY SHARE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[13].B (scenarios/postgres/03-locking/lock-mode-matrix.yaml:33); current scoped support applies
C00756	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:33	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[13].tl	yaml-scalar	"SELECT … FOR KEY SHARE → coexists with the UPDATE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[13].tl (scenarios/postgres/03-locking/lock-mode-matrix.yaml:34); current scoped support applies
C00757	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:35	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[14].note	yaml-scalar	"…while the strongest, FOR UPDATE, has to wait for it."	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[14].note (scenarios/postgres/03-locking/lock-mode-matrix.yaml:36); current scoped support applies
C00758	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:36	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[15].B	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[15].B (scenarios/postgres/03-locking/lock-mode-matrix.yaml:37); current scoped support applies
C00759	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:37	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[15].blocks	yaml-scalar	"p2"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[15].blocks (scenarios/postgres/03-locking/lock-mode-matrix.yaml:38); current scoped support applies
C00760	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:38	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[15].tl	yaml-scalar	"SELECT … FOR UPDATE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[15].tl (scenarios/postgres/03-locking/lock-mode-matrix.yaml:39); current scoped support applies
C00761	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:39	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[16].A	yaml-scalar	"COMMIT"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[16].A (scenarios/postgres/03-locking/lock-mode-matrix.yaml:40); current scoped support applies
C00762	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:40	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[16].tl	yaml-scalar	"COMMIT (releases A)"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[16].tl (scenarios/postgres/03-locking/lock-mode-matrix.yaml:41); current scoped support applies
C00763	base	scenarios/postgres/03-locking/lock-mode-matrix.yaml:41	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[17].success	yaml-scalar	"p2"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[17].success (scenarios/postgres/03-locking/lock-mode-matrix.yaml:42); current scoped support applies
C00764	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:1	scenarios/postgres/03-locking/lock-mode-matrix.yaml#title	yaml-scalar	"The four row-lock modes, from friendly to exclusive"	P19	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00765	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:2	scenarios/postgres/03-locking/lock-mode-matrix.yaml#claim	yaml-scalar	"This schedule asserts SHARE/SHARE coexistence, SHARE blocking a non-key UPDATE, KEY SHARE coexisting with that UPDATE, and FOR UPDATE waiting for it. The complete compatibility matrix is a manual contract."	P19	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00766	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:6	scenarios/postgres/03-locking/lock-mode-matrix.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P19	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00767	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:9	scenarios/postgres/03-locking/lock-mode-matrix.yaml#sessions[0]	yaml-scalar	"A"	P19	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00768	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:9	scenarios/postgres/03-locking/lock-mode-matrix.yaml#sessions[1]	yaml-scalar	"B"	P19	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00769	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:11	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[0].note	yaml-scalar	"Two FOR SHARE locks on the same row coexist happily…"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00770	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:12	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[1].A	yaml-scalar	"BEGIN"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00771	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:13	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[2].A	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR SHARE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00772	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:14	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[2].tl	yaml-scalar	"SELECT … FOR SHARE (A)"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00773	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:15	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[3].B	yaml-scalar	"BEGIN"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00774	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:16	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[4].B	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR SHARE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00775	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:17	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[4].tl	yaml-scalar	"SELECT … FOR SHARE (B) → coexists"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00776	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:18	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[5].B	yaml-scalar	"COMMIT"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00777	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:20	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[6].note	yaml-scalar	"…but FOR SHARE still blocks a plain UPDATE (which takes FOR NO KEY UPDATE)."	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00778	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:21	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[7].B	yaml-scalar	"UPDATE accounts SET balance = 200 WHERE id = 1"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00779	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:22	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[7].blocks	yaml-scalar	"p1"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00780	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:23	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[7].tl	yaml-scalar	"UPDATE → FOR NO KEY UPDATE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00781	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:24	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[8].A	yaml-scalar	"COMMIT"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00782	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:25	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[8].tl	yaml-scalar	"COMMIT (releases A's FOR SHARE)"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00783	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:26	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[9].success	yaml-scalar	"p1"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00784	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:27	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[9].affected	yaml-scalar	"1"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 200 WHERE id = 1"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00785	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:29	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[10].note	yaml-scalar	"The weakest lock, FOR KEY SHARE, even coexists with a running UPDATE…"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00786	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:30	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[11].A	yaml-scalar	"BEGIN"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00787	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:31	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[12].A	yaml-scalar	"UPDATE accounts SET balance = 300 WHERE id = 1"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00788	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:32	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[12].tl	yaml-scalar	"UPDATE → FOR NO KEY UPDATE (A)"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00789	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:33	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[13].B	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR KEY SHARE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00790	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:34	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[13].tl	yaml-scalar	"SELECT … FOR KEY SHARE → coexists with the UPDATE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00791	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:36	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[14].note	yaml-scalar	"…while the strongest, FOR UPDATE, has to wait for it."	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00792	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:37	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[15].B	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00793	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:38	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[15].blocks	yaml-scalar	"p2"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00794	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:39	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[15].tl	yaml-scalar	"SELECT … FOR UPDATE"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00795	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:40	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[16].A	yaml-scalar	"COMMIT"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00796	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:41	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[16].tl	yaml-scalar	"COMMIT (releases A)"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00797	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:42	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[17].success	yaml-scalar	"p2"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00798	current	scenarios/postgres/03-locking/lock-mode-matrix.yaml:43	scenarios/postgres/03-locking/lock-mode-matrix.yaml#steps[17].expect[0].id	yaml-scalar	"1"	P19	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00799	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:1	scenarios/postgres/03-locking/lock-queue-fifo.yaml#title	yaml-scalar	"Waiters form a queue — first come, first locked"	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/lock-queue-fifo.yaml#title; semantic decisions A1-A10 in audit report
C00800	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:2	scenarios/postgres/03-locking/lock-queue-fifo.yaml#claim	yaml-scalar	"Sessions waiting for the same row lock queue up: when the holder commits, the lock goes to the first waiter, and everyone else keeps waiting behind it."	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/lock-queue-fifo.yaml#claim; semantic decisions A1-A10 in audit report
C00801	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:6	scenarios/postgres/03-locking/lock-queue-fifo.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'shared', 100);\n"	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#setup (scenarios/postgres/03-locking/lock-queue-fifo.yaml:6); current scoped support applies
C00802	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:9	scenarios/postgres/03-locking/lock-queue-fifo.yaml#sessions[0]	yaml-scalar	"A"	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#sessions[0] (scenarios/postgres/03-locking/lock-queue-fifo.yaml:9); current scoped support applies
C00803	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:9	scenarios/postgres/03-locking/lock-queue-fifo.yaml#sessions[1]	yaml-scalar	"B"	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#sessions[1] (scenarios/postgres/03-locking/lock-queue-fifo.yaml:9); current scoped support applies
C00804	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:9	scenarios/postgres/03-locking/lock-queue-fifo.yaml#sessions[2]	yaml-scalar	"C"	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#sessions[2] (scenarios/postgres/03-locking/lock-queue-fifo.yaml:9); current scoped support applies
C00805	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:9	scenarios/postgres/03-locking/lock-queue-fifo.yaml#sessions[3]	yaml-scalar	"M"	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#sessions[3] (scenarios/postgres/03-locking/lock-queue-fifo.yaml:9); current scoped support applies
C00806	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:11	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[0].A	yaml-scalar	"BEGIN"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[0].A (scenarios/postgres/03-locking/lock-queue-fifo.yaml:11); current scoped support applies
C00807	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:12	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[1].A	yaml-scalar	"UPDATE accounts SET balance = balance + 1 WHERE id = 1"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[1].A (scenarios/postgres/03-locking/lock-queue-fifo.yaml:12); current scoped support applies
C00808	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:13	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[1].tl	yaml-scalar	"UPDATE +1 (takes the row lock)"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[1].tl (scenarios/postgres/03-locking/lock-queue-fifo.yaml:13); current scoped support applies
C00809	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:15	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[2].B	yaml-scalar	"BEGIN"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[2].B (scenarios/postgres/03-locking/lock-queue-fifo.yaml:15); current scoped support applies
C00810	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:16	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[3].B	yaml-scalar	"UPDATE accounts SET balance = balance + 10 WHERE id = 1"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[3].B (scenarios/postgres/03-locking/lock-queue-fifo.yaml:16); current scoped support applies
C00811	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:17	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[3].blocks	yaml-scalar	"p1"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[3].blocks (scenarios/postgres/03-locking/lock-queue-fifo.yaml:17); current scoped support applies
C00812	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:18	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[3].tl	yaml-scalar	"UPDATE +10"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[3].tl (scenarios/postgres/03-locking/lock-queue-fifo.yaml:18); current scoped support applies
C00813	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:19	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[4].C	yaml-scalar	"UPDATE accounts SET balance = balance + 100 WHERE id = 1"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[4].C (scenarios/postgres/03-locking/lock-queue-fifo.yaml:19); current scoped support applies
C00814	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:20	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[4].blocks	yaml-scalar	"p2"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[4].blocks (scenarios/postgres/03-locking/lock-queue-fifo.yaml:20); current scoped support applies
C00815	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:21	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[4].tl	yaml-scalar	"UPDATE +100"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[4].tl (scenarios/postgres/03-locking/lock-queue-fifo.yaml:21); current scoped support applies
C00816	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:23	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[5].note	yaml-scalar	"A fourth session, M, can watch the pile-up in pg_stat_activity."	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[5].note (scenarios/postgres/03-locking/lock-queue-fifo.yaml:23); current scoped support applies
C00817	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:24	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[6].M	yaml-scalar	"SELECT application_name AS waiting, pg_blocking_pids(pid) AS blocked_by\nFROM pg_stat_activity\nWHERE wait_event_type = 'Lock'\nORDER BY application_name\n"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[6].M (scenarios/postgres/03-locking/lock-queue-fifo.yaml:24); current scoped support applies
C00818	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:29	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[6].expect[0].waiting	yaml-scalar	"B"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[6].expect[0].waiting (scenarios/postgres/03-locking/lock-queue-fifo.yaml:29); current scoped support applies
C00819	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:29	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[6].expect[1].waiting	yaml-scalar	"C"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[6].expect[1].waiting (scenarios/postgres/03-locking/lock-queue-fifo.yaml:29); current scoped support applies
C00820	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:30	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[6].tl	yaml-scalar	"who's waiting? → B and C"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[6].tl (scenarios/postgres/03-locking/lock-queue-fifo.yaml:30); current scoped support applies
C00821	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:32	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[7].note	yaml-scalar	"A commits. The lock goes to B — the head of the queue — not to C."	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[7].note; semantic decisions A1-A10 in audit report
C00822	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:33	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[8].A	yaml-scalar	"COMMIT"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[8].A (scenarios/postgres/03-locking/lock-queue-fifo.yaml:33); current scoped support applies
C00823	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:34	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[8].tl	yaml-scalar	"COMMIT → lock passes to B"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[8].tl (scenarios/postgres/03-locking/lock-queue-fifo.yaml:34); current scoped support applies
C00824	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:35	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[9].success	yaml-scalar	"p1"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[9].success (scenarios/postgres/03-locking/lock-queue-fifo.yaml:35); current scoped support applies
C00825	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:37	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[10].locked	yaml-scalar	"C"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[10].locked (scenarios/postgres/03-locking/lock-queue-fifo.yaml:37); current scoped support applies
C00826	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:39	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[11].M	yaml-scalar	"SELECT application_name AS waiting, pg_blocking_pids(pid) AS blocked_by\nFROM pg_stat_activity\nWHERE wait_event_type = 'Lock'\nORDER BY application_name\n"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[11].M (scenarios/postgres/03-locking/lock-queue-fifo.yaml:39); current scoped support applies
C00827	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:44	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[11].expect[0].waiting	yaml-scalar	"C"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[11].expect[0].waiting (scenarios/postgres/03-locking/lock-queue-fifo.yaml:44); current scoped support applies
C00828	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:45	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[11].comment	yaml-scalar	"C is still in line, now behind B"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[11].comment (scenarios/postgres/03-locking/lock-queue-fifo.yaml:45); current scoped support applies
C00829	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:47	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[12].B	yaml-scalar	"COMMIT"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[12].B (scenarios/postgres/03-locking/lock-queue-fifo.yaml:47); current scoped support applies
C00830	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:48	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[12].tl	yaml-scalar	"COMMIT → lock passes to C"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[12].tl (scenarios/postgres/03-locking/lock-queue-fifo.yaml:48); current scoped support applies
C00831	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:49	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[13].success	yaml-scalar	"p2"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[13].success (scenarios/postgres/03-locking/lock-queue-fifo.yaml:49); current scoped support applies
C00832	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:51	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[14].C	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[14].C (scenarios/postgres/03-locking/lock-queue-fifo.yaml:51); current scoped support applies
C00833	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:52	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[14].expect[0].balance	yaml-scalar	"211"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[14].expect[0].balance (scenarios/postgres/03-locking/lock-queue-fifo.yaml:52); current scoped support applies
C00834	base	scenarios/postgres/03-locking/lock-queue-fifo.yaml:53	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[14].comment	yaml-scalar	"100 + 1 + 10 + 100 — every update landed, in queue order"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[14].comment (scenarios/postgres/03-locking/lock-queue-fifo.yaml:53); current scoped support applies
C00835	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:1	scenarios/postgres/03-locking/lock-queue-fifo.yaml#title	yaml-scalar	"Observed row-wait queue: B completes before C"	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00836	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:2	scenarios/postgres/03-locking/lock-queue-fifo.yaml#claim	yaml-scalar	"In this single-row update schedule B completes after A commits while C remains waiting; after B commits C completes, and the balance is 211. This observation does not establish universal FIFO fairness."	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00837	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:6	scenarios/postgres/03-locking/lock-queue-fifo.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'shared', 100);\n"	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00838	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:9	scenarios/postgres/03-locking/lock-queue-fifo.yaml#sessions[0]	yaml-scalar	"A"	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00839	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:9	scenarios/postgres/03-locking/lock-queue-fifo.yaml#sessions[1]	yaml-scalar	"B"	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00840	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:9	scenarios/postgres/03-locking/lock-queue-fifo.yaml#sessions[2]	yaml-scalar	"C"	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00841	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:9	scenarios/postgres/03-locking/lock-queue-fifo.yaml#sessions[3]	yaml-scalar	"M"	P20	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00842	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:11	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[0].A	yaml-scalar	"BEGIN"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00843	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:12	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[1].A	yaml-scalar	"UPDATE accounts SET balance = balance + 1 WHERE id = 1"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00844	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:13	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[1].tl	yaml-scalar	"UPDATE +1 (takes the row lock)"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00845	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:15	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[2].B	yaml-scalar	"BEGIN"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00846	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:16	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[3].B	yaml-scalar	"UPDATE accounts SET balance = balance + 10 WHERE id = 1"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00847	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:17	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[3].blocks	yaml-scalar	"p1"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00848	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:18	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[3].tl	yaml-scalar	"UPDATE +10"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00849	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:19	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[4].C	yaml-scalar	"UPDATE accounts SET balance = balance + 100 WHERE id = 1"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00850	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:20	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[4].blocks	yaml-scalar	"p2"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00851	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:21	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[4].tl	yaml-scalar	"UPDATE +100"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00852	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:23	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[5].note	yaml-scalar	"A fourth session, M, can watch the pile-up in pg_stat_activity."	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00853	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:24	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[6].M	yaml-scalar	"SELECT application_name AS waiting, pg_blocking_pids(pid) AS blocked_by\nFROM pg_stat_activity\nWHERE wait_event_type = 'Lock'\nORDER BY application_name\n"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00854	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:29	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[6].expect[0].waiting	yaml-scalar	"B"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00855	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:29	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[6].expect[1].waiting	yaml-scalar	"C"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00856	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:30	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[6].tl	yaml-scalar	"who's waiting? → B and C"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00857	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:32	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[7].note	yaml-scalar	"A commits. B completes while C is observed waiting again."	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00858	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:33	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[8].A	yaml-scalar	"COMMIT"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00859	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:34	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[8].tl	yaml-scalar	"COMMIT → lock passes to B"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00860	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:35	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[9].success	yaml-scalar	"p1"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 10 WHERE id = 1"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00861	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:37	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[10].locked	yaml-scalar	"C"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00862	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:39	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[11].M	yaml-scalar	"SELECT application_name AS waiting, pg_blocking_pids(pid) AS blocked_by\nFROM pg_stat_activity\nWHERE wait_event_type = 'Lock'\nORDER BY application_name\n"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00863	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:44	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[11].expect[0].waiting	yaml-scalar	"C"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00864	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:45	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[11].comment	yaml-scalar	"C is still in line, now behind B"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00865	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:47	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[12].B	yaml-scalar	"COMMIT"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00866	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:48	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[12].tl	yaml-scalar	"COMMIT → lock passes to C"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00867	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:49	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[13].success	yaml-scalar	"p2"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = balance + 100 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00868	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:51	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[14].C	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00869	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:52	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[14].expect[0].balance	yaml-scalar	"211"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00870	current	scenarios/postgres/03-locking/lock-queue-fifo.yaml:53	scenarios/postgres/03-locking/lock-queue-fifo.yaml#steps[14].comment	yaml-scalar	"100 + 1 + 10 + 100 — every update landed, in queue order"	P20	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00871	base	scenarios/postgres/03-locking/lock-timeout.yaml:1	scenarios/postgres/03-locking/lock-timeout.yaml#title	yaml-scalar	"lock_timeout: wait, but not forever"	P21	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#title (scenarios/postgres/03-locking/lock-timeout.yaml:1); current scoped support applies
C00872	base	scenarios/postgres/03-locking/lock-timeout.yaml:2	scenarios/postgres/03-locking/lock-timeout.yaml#claim	yaml-scalar	"With lock_timeout set, a statement waits for a lock only that long, then fails with SQLSTATE 55P03 — the same code NOWAIT raises immediately."	P21	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/lock-timeout.yaml#claim; semantic decisions A1-A10 in audit report
C00873	base	scenarios/postgres/03-locking/lock-timeout.yaml:5	scenarios/postgres/03-locking/lock-timeout.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P21	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#setup (scenarios/postgres/03-locking/lock-timeout.yaml:6); current scoped support applies
C00874	base	scenarios/postgres/03-locking/lock-timeout.yaml:8	scenarios/postgres/03-locking/lock-timeout.yaml#sessions[0]	yaml-scalar	"A"	P21	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#sessions[0] (scenarios/postgres/03-locking/lock-timeout.yaml:9); current scoped support applies
C00875	base	scenarios/postgres/03-locking/lock-timeout.yaml:8	scenarios/postgres/03-locking/lock-timeout.yaml#sessions[1]	yaml-scalar	"B"	P21	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#sessions[1] (scenarios/postgres/03-locking/lock-timeout.yaml:9); current scoped support applies
C00876	base	scenarios/postgres/03-locking/lock-timeout.yaml:10	scenarios/postgres/03-locking/lock-timeout.yaml#steps[0].A	yaml-scalar	"BEGIN"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[0].A (scenarios/postgres/03-locking/lock-timeout.yaml:11); current scoped support applies
C00877	base	scenarios/postgres/03-locking/lock-timeout.yaml:11	scenarios/postgres/03-locking/lock-timeout.yaml#steps[1].A	yaml-scalar	"UPDATE accounts SET balance = 200 WHERE id = 1"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[1].A (scenarios/postgres/03-locking/lock-timeout.yaml:12); current scoped support applies
C00878	base	scenarios/postgres/03-locking/lock-timeout.yaml:12	scenarios/postgres/03-locking/lock-timeout.yaml#steps[1].tl	yaml-scalar	"UPDATE 200 (locks row 1)"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[1].tl (scenarios/postgres/03-locking/lock-timeout.yaml:13); current scoped support applies
C00879	base	scenarios/postgres/03-locking/lock-timeout.yaml:14	scenarios/postgres/03-locking/lock-timeout.yaml#steps[2].B	yaml-scalar	"SET lock_timeout = '100ms'"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[2].B (scenarios/postgres/03-locking/lock-timeout.yaml:15); current scoped support applies
C00880	base	scenarios/postgres/03-locking/lock-timeout.yaml:15	scenarios/postgres/03-locking/lock-timeout.yaml#steps[3].note	yaml-scalar	"B queues for the row lock like anyone else — but gives up after 100ms."	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[3].note (scenarios/postgres/03-locking/lock-timeout.yaml:16); current scoped support applies
C00881	base	scenarios/postgres/03-locking/lock-timeout.yaml:16	scenarios/postgres/03-locking/lock-timeout.yaml#steps[4].B.fails	yaml-scalar	"UPDATE accounts SET balance = 300 WHERE id = 1"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[4].B.fails (scenarios/postgres/03-locking/lock-timeout.yaml:17); current scoped support applies
C00882	base	scenarios/postgres/03-locking/lock-timeout.yaml:17	scenarios/postgres/03-locking/lock-timeout.yaml#steps[4].error	yaml-scalar	"55P03"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[4].error (scenarios/postgres/03-locking/lock-timeout.yaml:18); current scoped support applies
C00883	base	scenarios/postgres/03-locking/lock-timeout.yaml:18	scenarios/postgres/03-locking/lock-timeout.yaml#steps[4].comment	yaml-scalar	"lock_not_available, raised after the timeout"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[4].comment (scenarios/postgres/03-locking/lock-timeout.yaml:19); current scoped support applies
C00884	base	scenarios/postgres/03-locking/lock-timeout.yaml:19	scenarios/postgres/03-locking/lock-timeout.yaml#steps[4].tl	yaml-scalar	"UPDATE 300 → gives up after 100ms"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[4].tl (scenarios/postgres/03-locking/lock-timeout.yaml:20); current scoped support applies
C00885	base	scenarios/postgres/03-locking/lock-timeout.yaml:21	scenarios/postgres/03-locking/lock-timeout.yaml#steps[5].note	yaml-scalar	"The failure canceled only B's statement — a retry after A commits works."	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/lock-timeout.yaml#steps[5].note; semantic decisions A1-A10 in audit report
C00886	base	scenarios/postgres/03-locking/lock-timeout.yaml:22	scenarios/postgres/03-locking/lock-timeout.yaml#steps[6].A	yaml-scalar	"COMMIT"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[6].A (scenarios/postgres/03-locking/lock-timeout.yaml:23); current scoped support applies
C00887	base	scenarios/postgres/03-locking/lock-timeout.yaml:23	scenarios/postgres/03-locking/lock-timeout.yaml#steps[6].tl	yaml-scalar	"COMMIT"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[6].tl (scenarios/postgres/03-locking/lock-timeout.yaml:24); current scoped support applies
C00888	base	scenarios/postgres/03-locking/lock-timeout.yaml:24	scenarios/postgres/03-locking/lock-timeout.yaml#steps[7].B	yaml-scalar	"UPDATE accounts SET balance = 300 WHERE id = 1"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[7].B (scenarios/postgres/03-locking/lock-timeout.yaml:25); current scoped support applies
C00889	base	scenarios/postgres/03-locking/lock-timeout.yaml:25	scenarios/postgres/03-locking/lock-timeout.yaml#steps[7].tl	yaml-scalar	"UPDATE 300 (retry succeeds)"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[7].tl (scenarios/postgres/03-locking/lock-timeout.yaml:26); current scoped support applies
C00890	base	scenarios/postgres/03-locking/lock-timeout.yaml:26	scenarios/postgres/03-locking/lock-timeout.yaml#steps[8].B	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[8].B (scenarios/postgres/03-locking/lock-timeout.yaml:27); current scoped support applies
C00891	base	scenarios/postgres/03-locking/lock-timeout.yaml:27	scenarios/postgres/03-locking/lock-timeout.yaml#steps[8].expect[0].balance	yaml-scalar	"300"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/lock-timeout.yaml#steps[8].expect[0].balance (scenarios/postgres/03-locking/lock-timeout.yaml:28); current scoped support applies
C00892	current	scenarios/postgres/03-locking/lock-timeout.yaml:1	scenarios/postgres/03-locking/lock-timeout.yaml#title	yaml-scalar	"lock_timeout: wait, but not forever"	P21	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00893	current	scenarios/postgres/03-locking/lock-timeout.yaml:2	scenarios/postgres/03-locking/lock-timeout.yaml#claim	yaml-scalar	"B's standalone UPDATE fails with 55P03 under a 100ms lock_timeout while A holds the row lock. After A commits, B retries successfully and reads 300. lock_timeout limits each acquisition, not total statement time."	P21	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00894	current	scenarios/postgres/03-locking/lock-timeout.yaml:6	scenarios/postgres/03-locking/lock-timeout.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P21	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00895	current	scenarios/postgres/03-locking/lock-timeout.yaml:9	scenarios/postgres/03-locking/lock-timeout.yaml#sessions[0]	yaml-scalar	"A"	P21	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00896	current	scenarios/postgres/03-locking/lock-timeout.yaml:9	scenarios/postgres/03-locking/lock-timeout.yaml#sessions[1]	yaml-scalar	"B"	P21	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00897	current	scenarios/postgres/03-locking/lock-timeout.yaml:11	scenarios/postgres/03-locking/lock-timeout.yaml#steps[0].A	yaml-scalar	"BEGIN"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00898	current	scenarios/postgres/03-locking/lock-timeout.yaml:12	scenarios/postgres/03-locking/lock-timeout.yaml#steps[1].A	yaml-scalar	"UPDATE accounts SET balance = 200 WHERE id = 1"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00899	current	scenarios/postgres/03-locking/lock-timeout.yaml:13	scenarios/postgres/03-locking/lock-timeout.yaml#steps[1].tl	yaml-scalar	"UPDATE 200 (locks row 1)"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00900	current	scenarios/postgres/03-locking/lock-timeout.yaml:15	scenarios/postgres/03-locking/lock-timeout.yaml#steps[2].B	yaml-scalar	"SET lock_timeout = '100ms'"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00901	current	scenarios/postgres/03-locking/lock-timeout.yaml:16	scenarios/postgres/03-locking/lock-timeout.yaml#steps[3].note	yaml-scalar	"B queues for the row lock like anyone else — but gives up after 100ms."	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00902	current	scenarios/postgres/03-locking/lock-timeout.yaml:17	scenarios/postgres/03-locking/lock-timeout.yaml#steps[4].B.fails	yaml-scalar	"UPDATE accounts SET balance = 300 WHERE id = 1"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00903	current	scenarios/postgres/03-locking/lock-timeout.yaml:18	scenarios/postgres/03-locking/lock-timeout.yaml#steps[4].error	yaml-scalar	"55P03"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00904	current	scenarios/postgres/03-locking/lock-timeout.yaml:19	scenarios/postgres/03-locking/lock-timeout.yaml#steps[4].comment	yaml-scalar	"lock_not_available, raised after the timeout"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00905	current	scenarios/postgres/03-locking/lock-timeout.yaml:20	scenarios/postgres/03-locking/lock-timeout.yaml#steps[4].tl	yaml-scalar	"UPDATE 300 → gives up after 100ms"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00906	current	scenarios/postgres/03-locking/lock-timeout.yaml:22	scenarios/postgres/03-locking/lock-timeout.yaml#steps[5].note	yaml-scalar	"B's failed standalone statement ends its implicit transaction; a fresh attempt after A commits works here."	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00907	current	scenarios/postgres/03-locking/lock-timeout.yaml:23	scenarios/postgres/03-locking/lock-timeout.yaml#steps[6].A	yaml-scalar	"COMMIT"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00908	current	scenarios/postgres/03-locking/lock-timeout.yaml:24	scenarios/postgres/03-locking/lock-timeout.yaml#steps[6].tl	yaml-scalar	"COMMIT"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00909	current	scenarios/postgres/03-locking/lock-timeout.yaml:25	scenarios/postgres/03-locking/lock-timeout.yaml#steps[7].B	yaml-scalar	"UPDATE accounts SET balance = 300 WHERE id = 1"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00910	current	scenarios/postgres/03-locking/lock-timeout.yaml:26	scenarios/postgres/03-locking/lock-timeout.yaml#steps[7].tl	yaml-scalar	"UPDATE 300 (retry succeeds)"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00911	current	scenarios/postgres/03-locking/lock-timeout.yaml:27	scenarios/postgres/03-locking/lock-timeout.yaml#steps[8].B	yaml-scalar	"SELECT balance FROM accounts WHERE id = 1"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00912	current	scenarios/postgres/03-locking/lock-timeout.yaml:28	scenarios/postgres/03-locking/lock-timeout.yaml#steps[8].expect[0].balance	yaml-scalar	"300"	P21	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"100ms","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00913	base	scenarios/postgres/03-locking/monitoring-locks.yaml:1	scenarios/postgres/03-locking/monitoring-locks.yaml#title	yaml-scalar	"Reading pg_locks: what one UPDATE really holds"	P22	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#title (scenarios/postgres/03-locking/monitoring-locks.yaml:1); current scoped support applies
C00914	base	scenarios/postgres/03-locking/monitoring-locks.yaml:2	scenarios/postgres/03-locking/monitoring-locks.yaml#claim	yaml-scalar	"pg_locks shows every lock a transaction holds — a single-row UPDATE takes four — and a waiter shows up as granted = false, findable via pg_blocking_pids()."	P22	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/monitoring-locks.yaml#claim; semantic decisions A1-A10 in audit report
C00915	base	scenarios/postgres/03-locking/monitoring-locks.yaml:6	scenarios/postgres/03-locking/monitoring-locks.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P22	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#setup (scenarios/postgres/03-locking/monitoring-locks.yaml:6); current scoped support applies
C00916	base	scenarios/postgres/03-locking/monitoring-locks.yaml:9	scenarios/postgres/03-locking/monitoring-locks.yaml#sessions[0]	yaml-scalar	"A"	P22	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#sessions[0] (scenarios/postgres/03-locking/monitoring-locks.yaml:9); current scoped support applies
C00917	base	scenarios/postgres/03-locking/monitoring-locks.yaml:9	scenarios/postgres/03-locking/monitoring-locks.yaml#sessions[1]	yaml-scalar	"B"	P22	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#sessions[1] (scenarios/postgres/03-locking/monitoring-locks.yaml:9); current scoped support applies
C00918	base	scenarios/postgres/03-locking/monitoring-locks.yaml:9	scenarios/postgres/03-locking/monitoring-locks.yaml#sessions[2]	yaml-scalar	"M"	P22	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#sessions[2] (scenarios/postgres/03-locking/monitoring-locks.yaml:9); current scoped support applies
C00919	base	scenarios/postgres/03-locking/monitoring-locks.yaml:11	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[0].A	yaml-scalar	"BEGIN"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[0].A (scenarios/postgres/03-locking/monitoring-locks.yaml:11); current scoped support applies
C00920	base	scenarios/postgres/03-locking/monitoring-locks.yaml:12	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[1].A	yaml-scalar	"UPDATE accounts SET balance = 200 WHERE id = 1"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[1].A (scenarios/postgres/03-locking/monitoring-locks.yaml:12); current scoped support applies
C00921	base	scenarios/postgres/03-locking/monitoring-locks.yaml:13	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[1].tl	yaml-scalar	"UPDATE (takes the row lock)"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[1].tl (scenarios/postgres/03-locking/monitoring-locks.yaml:13); current scoped support applies
C00922	base	scenarios/postgres/03-locking/monitoring-locks.yaml:15	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[2].note	yaml-scalar	"One innocent UPDATE = four locks: table, index, its own xid, its own virtual xid."	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/monitoring-locks.yaml#steps[2].note; semantic decisions A1-A10 in audit report
C00923	base	scenarios/postgres/03-locking/monitoring-locks.yaml:17	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].M	yaml-scalar	"SELECT l.locktype, l.relation::regclass AS relation, l.mode, l.granted\nFROM pg_locks l JOIN pg_stat_activity a ON a.pid = l.pid\nWHERE a.application_name = 'A'\nORDER BY l.locktype, l.relation::regclass::text, l.mode\n"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].M (scenarios/postgres/03-locking/monitoring-locks.yaml:17); current scoped support applies
C00924	base	scenarios/postgres/03-locking/monitoring-locks.yaml:23	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[0].locktype	yaml-scalar	"relation"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[0].locktype (scenarios/postgres/03-locking/monitoring-locks.yaml:23); current scoped support applies
C00925	base	scenarios/postgres/03-locking/monitoring-locks.yaml:23	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[0].relation	yaml-scalar	"accounts"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[0].relation (scenarios/postgres/03-locking/monitoring-locks.yaml:23); current scoped support applies
C00926	base	scenarios/postgres/03-locking/monitoring-locks.yaml:23	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[0].mode	yaml-scalar	"RowExclusiveLock"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[0].mode (scenarios/postgres/03-locking/monitoring-locks.yaml:23); current scoped support applies
C00927	base	scenarios/postgres/03-locking/monitoring-locks.yaml:23	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[0].granted	yaml-scalar	"true"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[0].granted (scenarios/postgres/03-locking/monitoring-locks.yaml:23); current scoped support applies
C00928	base	scenarios/postgres/03-locking/monitoring-locks.yaml:24	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[1].locktype	yaml-scalar	"relation"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[1].locktype (scenarios/postgres/03-locking/monitoring-locks.yaml:24); current scoped support applies
C00929	base	scenarios/postgres/03-locking/monitoring-locks.yaml:24	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[1].relation	yaml-scalar	"accounts_pkey"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[1].relation (scenarios/postgres/03-locking/monitoring-locks.yaml:24); current scoped support applies
C00930	base	scenarios/postgres/03-locking/monitoring-locks.yaml:24	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[1].mode	yaml-scalar	"RowExclusiveLock"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[1].mode (scenarios/postgres/03-locking/monitoring-locks.yaml:24); current scoped support applies
C00931	base	scenarios/postgres/03-locking/monitoring-locks.yaml:24	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[1].granted	yaml-scalar	"true"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[1].granted (scenarios/postgres/03-locking/monitoring-locks.yaml:24); current scoped support applies
C00932	base	scenarios/postgres/03-locking/monitoring-locks.yaml:25	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[2].locktype	yaml-scalar	"transactionid"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[2].locktype (scenarios/postgres/03-locking/monitoring-locks.yaml:25); current scoped support applies
C00933	base	scenarios/postgres/03-locking/monitoring-locks.yaml:25	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[2].relation	yaml-scalar	"null"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[2].relation (scenarios/postgres/03-locking/monitoring-locks.yaml:25); current scoped support applies
C00934	base	scenarios/postgres/03-locking/monitoring-locks.yaml:25	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[2].mode	yaml-scalar	"ExclusiveLock"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[2].mode (scenarios/postgres/03-locking/monitoring-locks.yaml:25); current scoped support applies
C00935	base	scenarios/postgres/03-locking/monitoring-locks.yaml:25	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[2].granted	yaml-scalar	"true"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[2].granted (scenarios/postgres/03-locking/monitoring-locks.yaml:25); current scoped support applies
C00936	base	scenarios/postgres/03-locking/monitoring-locks.yaml:26	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[3].locktype	yaml-scalar	"virtualxid"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[3].locktype (scenarios/postgres/03-locking/monitoring-locks.yaml:26); current scoped support applies
C00937	base	scenarios/postgres/03-locking/monitoring-locks.yaml:26	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[3].relation	yaml-scalar	"null"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[3].relation (scenarios/postgres/03-locking/monitoring-locks.yaml:26); current scoped support applies
C00938	base	scenarios/postgres/03-locking/monitoring-locks.yaml:26	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[3].mode	yaml-scalar	"ExclusiveLock"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[3].mode (scenarios/postgres/03-locking/monitoring-locks.yaml:26); current scoped support applies
C00939	base	scenarios/postgres/03-locking/monitoring-locks.yaml:26	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[3].granted	yaml-scalar	"true"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[3].granted (scenarios/postgres/03-locking/monitoring-locks.yaml:26); current scoped support applies
C00940	base	scenarios/postgres/03-locking/monitoring-locks.yaml:28	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[4].B	yaml-scalar	"UPDATE accounts SET balance = 300 WHERE id = 1"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[4].B (scenarios/postgres/03-locking/monitoring-locks.yaml:28); current scoped support applies
C00941	base	scenarios/postgres/03-locking/monitoring-locks.yaml:29	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[4].blocks	yaml-scalar	"p1"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[4].blocks (scenarios/postgres/03-locking/monitoring-locks.yaml:29); current scoped support applies
C00942	base	scenarios/postgres/03-locking/monitoring-locks.yaml:30	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[4].tl	yaml-scalar	"UPDATE → waits on A"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[4].tl (scenarios/postgres/03-locking/monitoring-locks.yaml:30); current scoped support applies
C00943	base	scenarios/postgres/03-locking/monitoring-locks.yaml:32	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[5].note	yaml-scalar	"The waiter's tell: a lock row with granted = f — it wants A's transaction id."	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[5].note (scenarios/postgres/03-locking/monitoring-locks.yaml:32); current scoped support applies
C00944	base	scenarios/postgres/03-locking/monitoring-locks.yaml:34	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[6].M	yaml-scalar	"SELECT l.locktype, l.mode, l.granted\nFROM pg_locks l JOIN pg_stat_activity a ON a.pid = l.pid\nWHERE a.application_name = 'B' AND NOT l.granted\n"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[6].M (scenarios/postgres/03-locking/monitoring-locks.yaml:34); current scoped support applies
C00945	base	scenarios/postgres/03-locking/monitoring-locks.yaml:38	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[6].expect[0].locktype	yaml-scalar	"transactionid"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[6].expect[0].locktype (scenarios/postgres/03-locking/monitoring-locks.yaml:38); current scoped support applies
C00946	base	scenarios/postgres/03-locking/monitoring-locks.yaml:38	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[6].expect[0].mode	yaml-scalar	"ShareLock"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[6].expect[0].mode (scenarios/postgres/03-locking/monitoring-locks.yaml:38); current scoped support applies
C00947	base	scenarios/postgres/03-locking/monitoring-locks.yaml:38	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[6].expect[0].granted	yaml-scalar	"false"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[6].expect[0].granted (scenarios/postgres/03-locking/monitoring-locks.yaml:38); current scoped support applies
C00948	base	scenarios/postgres/03-locking/monitoring-locks.yaml:40	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[7].note	yaml-scalar	"You rarely need to decode pg_locks by hand — pg_blocking_pids() names the culprit."	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[7].note (scenarios/postgres/03-locking/monitoring-locks.yaml:40); current scoped support applies
C00949	base	scenarios/postgres/03-locking/monitoring-locks.yaml:41	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[8].M	yaml-scalar	"SELECT waiter.application_name AS waiter, blocker.application_name AS blocker\nFROM pg_stat_activity waiter\nJOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\nWHERE waiter.wait_event_type = 'Lock'\nORDER BY waiter.application_name, blocker.application_name\n"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[8].M (scenarios/postgres/03-locking/monitoring-locks.yaml:41); current scoped support applies
C00950	base	scenarios/postgres/03-locking/monitoring-locks.yaml:47	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[8].expect[0].waiter	yaml-scalar	"B"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[8].expect[0].waiter (scenarios/postgres/03-locking/monitoring-locks.yaml:47); current scoped support applies
C00951	base	scenarios/postgres/03-locking/monitoring-locks.yaml:47	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[8].expect[0].blocker	yaml-scalar	"A"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[8].expect[0].blocker (scenarios/postgres/03-locking/monitoring-locks.yaml:47); current scoped support applies
C00952	base	scenarios/postgres/03-locking/monitoring-locks.yaml:49	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[9].A	yaml-scalar	"COMMIT"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[9].A (scenarios/postgres/03-locking/monitoring-locks.yaml:49); current scoped support applies
C00953	base	scenarios/postgres/03-locking/monitoring-locks.yaml:50	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[9].tl	yaml-scalar	"COMMIT"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[9].tl (scenarios/postgres/03-locking/monitoring-locks.yaml:50); current scoped support applies
C00954	base	scenarios/postgres/03-locking/monitoring-locks.yaml:51	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[10].success	yaml-scalar	"p1"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/monitoring-locks.yaml#steps[10].success (scenarios/postgres/03-locking/monitoring-locks.yaml:51); current scoped support applies
C00955	current	scenarios/postgres/03-locking/monitoring-locks.yaml:1	scenarios/postgres/03-locking/monitoring-locks.yaml#title	yaml-scalar	"Reading pg_locks: what one UPDATE really holds"	P22	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00956	current	scenarios/postgres/03-locking/monitoring-locks.yaml:2	scenarios/postgres/03-locking/monitoring-locks.yaml#claim	yaml-scalar	"For this table and primary index, M asserts four pg_locks entries for A's UPDATE, B's ungranted transaction-id ShareLock, and B's direct blocker A. Ordinary on-disk row locks normally do not appear directly in pg_locks."	P22	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00957	current	scenarios/postgres/03-locking/monitoring-locks.yaml:6	scenarios/postgres/03-locking/monitoring-locks.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P22	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00958	current	scenarios/postgres/03-locking/monitoring-locks.yaml:9	scenarios/postgres/03-locking/monitoring-locks.yaml#sessions[0]	yaml-scalar	"A"	P22	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00959	current	scenarios/postgres/03-locking/monitoring-locks.yaml:9	scenarios/postgres/03-locking/monitoring-locks.yaml#sessions[1]	yaml-scalar	"B"	P22	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00960	current	scenarios/postgres/03-locking/monitoring-locks.yaml:9	scenarios/postgres/03-locking/monitoring-locks.yaml#sessions[2]	yaml-scalar	"M"	P22	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00961	current	scenarios/postgres/03-locking/monitoring-locks.yaml:11	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[0].A	yaml-scalar	"BEGIN"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00962	current	scenarios/postgres/03-locking/monitoring-locks.yaml:12	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[1].A	yaml-scalar	"UPDATE accounts SET balance = 200 WHERE id = 1"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00963	current	scenarios/postgres/03-locking/monitoring-locks.yaml:13	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[1].tl	yaml-scalar	"UPDATE (takes the row lock)"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00964	current	scenarios/postgres/03-locking/monitoring-locks.yaml:15	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[2].note	yaml-scalar	"This UPDATE's inspected lock entries: table, index, assigned xid and virtual xid."	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00965	current	scenarios/postgres/03-locking/monitoring-locks.yaml:17	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].M	yaml-scalar	"SELECT l.locktype, l.relation::regclass AS relation, l.mode, l.granted\nFROM pg_locks l JOIN pg_stat_activity a ON a.pid = l.pid\nWHERE a.application_name = 'A'\nORDER BY l.locktype, l.relation::regclass::text, l.mode\n"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00966	current	scenarios/postgres/03-locking/monitoring-locks.yaml:23	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[0].locktype	yaml-scalar	"relation"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00967	current	scenarios/postgres/03-locking/monitoring-locks.yaml:23	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[0].relation	yaml-scalar	"accounts"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00968	current	scenarios/postgres/03-locking/monitoring-locks.yaml:23	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[0].mode	yaml-scalar	"RowExclusiveLock"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00969	current	scenarios/postgres/03-locking/monitoring-locks.yaml:23	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[0].granted	yaml-scalar	"true"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00970	current	scenarios/postgres/03-locking/monitoring-locks.yaml:24	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[1].locktype	yaml-scalar	"relation"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00971	current	scenarios/postgres/03-locking/monitoring-locks.yaml:24	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[1].relation	yaml-scalar	"accounts_pkey"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00972	current	scenarios/postgres/03-locking/monitoring-locks.yaml:24	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[1].mode	yaml-scalar	"RowExclusiveLock"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00973	current	scenarios/postgres/03-locking/monitoring-locks.yaml:24	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[1].granted	yaml-scalar	"true"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00974	current	scenarios/postgres/03-locking/monitoring-locks.yaml:25	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[2].locktype	yaml-scalar	"transactionid"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00975	current	scenarios/postgres/03-locking/monitoring-locks.yaml:25	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[2].relation	yaml-scalar	"null"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00976	current	scenarios/postgres/03-locking/monitoring-locks.yaml:25	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[2].mode	yaml-scalar	"ExclusiveLock"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00977	current	scenarios/postgres/03-locking/monitoring-locks.yaml:25	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[2].granted	yaml-scalar	"true"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00978	current	scenarios/postgres/03-locking/monitoring-locks.yaml:26	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[3].locktype	yaml-scalar	"virtualxid"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00979	current	scenarios/postgres/03-locking/monitoring-locks.yaml:26	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[3].relation	yaml-scalar	"null"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00980	current	scenarios/postgres/03-locking/monitoring-locks.yaml:26	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[3].mode	yaml-scalar	"ExclusiveLock"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00981	current	scenarios/postgres/03-locking/monitoring-locks.yaml:26	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[3].expect[3].granted	yaml-scalar	"true"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00982	current	scenarios/postgres/03-locking/monitoring-locks.yaml:28	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[4].B	yaml-scalar	"UPDATE accounts SET balance = 300 WHERE id = 1"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00983	current	scenarios/postgres/03-locking/monitoring-locks.yaml:29	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[4].blocks	yaml-scalar	"p1"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00984	current	scenarios/postgres/03-locking/monitoring-locks.yaml:30	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[4].tl	yaml-scalar	"UPDATE → waits on A"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00985	current	scenarios/postgres/03-locking/monitoring-locks.yaml:32	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[5].note	yaml-scalar	"The waiter's tell: a lock row with granted = f — it wants A's transaction id."	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00986	current	scenarios/postgres/03-locking/monitoring-locks.yaml:34	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[6].M	yaml-scalar	"SELECT l.locktype, l.mode, l.granted\nFROM pg_locks l JOIN pg_stat_activity a ON a.pid = l.pid\nWHERE a.application_name = 'B' AND NOT l.granted\n"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00987	current	scenarios/postgres/03-locking/monitoring-locks.yaml:38	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[6].expect[0].locktype	yaml-scalar	"transactionid"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00988	current	scenarios/postgres/03-locking/monitoring-locks.yaml:38	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[6].expect[0].mode	yaml-scalar	"ShareLock"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00989	current	scenarios/postgres/03-locking/monitoring-locks.yaml:38	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[6].expect[0].granted	yaml-scalar	"false"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00990	current	scenarios/postgres/03-locking/monitoring-locks.yaml:40	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[7].note	yaml-scalar	"You rarely need to decode pg_locks by hand — pg_blocking_pids() names the culprit."	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00991	current	scenarios/postgres/03-locking/monitoring-locks.yaml:41	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[8].M	yaml-scalar	"SELECT waiter.application_name AS waiter, blocker.application_name AS blocker\nFROM pg_stat_activity waiter\nJOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\nWHERE waiter.wait_event_type = 'Lock'\nORDER BY waiter.application_name, blocker.application_name\n"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00992	current	scenarios/postgres/03-locking/monitoring-locks.yaml:47	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[8].expect[0].waiter	yaml-scalar	"B"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00993	current	scenarios/postgres/03-locking/monitoring-locks.yaml:47	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[8].expect[0].blocker	yaml-scalar	"A"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00994	current	scenarios/postgres/03-locking/monitoring-locks.yaml:49	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[9].A	yaml-scalar	"COMMIT"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00995	current	scenarios/postgres/03-locking/monitoring-locks.yaml:50	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[9].tl	yaml-scalar	"COMMIT"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C00996	current	scenarios/postgres/03-locking/monitoring-locks.yaml:51	scenarios/postgres/03-locking/monitoring-locks.yaml#steps[10].success	yaml-scalar	"p1"	P22	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"implicit active pending","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s","pending":"UPDATE accounts SET balance = 300 WHERE id = 1"}; M={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"M":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C00997	base	scenarios/postgres/03-locking/nowait.yaml:1	scenarios/postgres/03-locking/nowait.yaml#title	yaml-scalar	"NOWAIT: fail fast instead of queueing"	P23	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#title (scenarios/postgres/03-locking/nowait.yaml:1); current scoped support applies
C00998	base	scenarios/postgres/03-locking/nowait.yaml:2	scenarios/postgres/03-locking/nowait.yaml#claim	yaml-scalar	"SELECT ... FOR UPDATE NOWAIT refuses to wait: if the row is locked it fails immediately with SQLSTATE 55P03 instead of joining the lock queue."	P23	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/nowait.yaml#claim; semantic decisions A1-A10 in audit report
C00999	base	scenarios/postgres/03-locking/nowait.yaml:5	scenarios/postgres/03-locking/nowait.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P23	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#setup (scenarios/postgres/03-locking/nowait.yaml:6); current scoped support applies
C01000	base	scenarios/postgres/03-locking/nowait.yaml:8	scenarios/postgres/03-locking/nowait.yaml#sessions[0]	yaml-scalar	"A"	P23	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#sessions[0] (scenarios/postgres/03-locking/nowait.yaml:9); current scoped support applies
C01001	base	scenarios/postgres/03-locking/nowait.yaml:8	scenarios/postgres/03-locking/nowait.yaml#sessions[1]	yaml-scalar	"B"	P23	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#sessions[1] (scenarios/postgres/03-locking/nowait.yaml:9); current scoped support applies
C01002	base	scenarios/postgres/03-locking/nowait.yaml:10	scenarios/postgres/03-locking/nowait.yaml#steps[0].A	yaml-scalar	"BEGIN"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#steps[0].A (scenarios/postgres/03-locking/nowait.yaml:11); current scoped support applies
C01003	base	scenarios/postgres/03-locking/nowait.yaml:11	scenarios/postgres/03-locking/nowait.yaml#steps[1].A	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#steps[1].A (scenarios/postgres/03-locking/nowait.yaml:12); current scoped support applies
C01004	base	scenarios/postgres/03-locking/nowait.yaml:12	scenarios/postgres/03-locking/nowait.yaml#steps[1].tl	yaml-scalar	"SELECT … FOR UPDATE (locks row 1)"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#steps[1].tl (scenarios/postgres/03-locking/nowait.yaml:13); current scoped support applies
C01005	base	scenarios/postgres/03-locking/nowait.yaml:14	scenarios/postgres/03-locking/nowait.yaml#steps[2].B.fails	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR UPDATE NOWAIT"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#steps[2].B.fails (scenarios/postgres/03-locking/nowait.yaml:15); current scoped support applies
C01006	base	scenarios/postgres/03-locking/nowait.yaml:15	scenarios/postgres/03-locking/nowait.yaml#steps[2].error	yaml-scalar	"55P03"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/nowait.yaml#steps[2].error (scenarios/postgres/03-locking/nowait.yaml:16); current scoped support applies
C01007	base	scenarios/postgres/03-locking/nowait.yaml:16	scenarios/postgres/03-locking/nowait.yaml#steps[2].comment	yaml-scalar	"lock_not_available — instantly, no waiting"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/nowait.yaml#steps[2].B.fails; scenarios/postgres/03-locking/nowait.yaml#steps[2].error; scenarios/postgres/03-locking/nowait.yaml#steps[2].comment; scenarios/postgres/03-locking/nowait.yaml#steps[2].tl; semantic decisions A1-A10 in audit report
C01008	base	scenarios/postgres/03-locking/nowait.yaml:17	scenarios/postgres/03-locking/nowait.yaml#steps[2].tl	yaml-scalar	"… FOR UPDATE NOWAIT"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#steps[2].tl (scenarios/postgres/03-locking/nowait.yaml:18); current scoped support applies
C01009	base	scenarios/postgres/03-locking/nowait.yaml:19	scenarios/postgres/03-locking/nowait.yaml#steps[3].note	yaml-scalar	"Once A is done, the same statement succeeds."	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#steps[3].note (scenarios/postgres/03-locking/nowait.yaml:20); current scoped support applies
C01010	base	scenarios/postgres/03-locking/nowait.yaml:20	scenarios/postgres/03-locking/nowait.yaml#steps[4].A	yaml-scalar	"COMMIT"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#steps[4].A (scenarios/postgres/03-locking/nowait.yaml:21); current scoped support applies
C01011	base	scenarios/postgres/03-locking/nowait.yaml:21	scenarios/postgres/03-locking/nowait.yaml#steps[4].tl	yaml-scalar	"COMMIT (releases the lock)"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#steps[4].tl (scenarios/postgres/03-locking/nowait.yaml:22); current scoped support applies
C01012	base	scenarios/postgres/03-locking/nowait.yaml:22	scenarios/postgres/03-locking/nowait.yaml#steps[5].B	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR UPDATE NOWAIT"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#steps[5].B (scenarios/postgres/03-locking/nowait.yaml:23); current scoped support applies
C01013	base	scenarios/postgres/03-locking/nowait.yaml:23	scenarios/postgres/03-locking/nowait.yaml#steps[5].expect[0].id	yaml-scalar	"1"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/nowait.yaml#steps[5].expect[0].id (scenarios/postgres/03-locking/nowait.yaml:24); current scoped support applies
C01014	base	scenarios/postgres/03-locking/nowait.yaml:24	scenarios/postgres/03-locking/nowait.yaml#steps[5].tl	yaml-scalar	"… NOWAIT → row 1"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/nowait.yaml#steps[5].tl (scenarios/postgres/03-locking/nowait.yaml:25); current scoped support applies
C01015	current	scenarios/postgres/03-locking/nowait.yaml:1	scenarios/postgres/03-locking/nowait.yaml#title	yaml-scalar	"NOWAIT: fail fast instead of queueing"	P23	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01016	current	scenarios/postgres/03-locking/nowait.yaml:2	scenarios/postgres/03-locking/nowait.yaml#claim	yaml-scalar	"B's FOR UPDATE NOWAIT gets 55P03 while A holds a conflicting row lock; after A commits, B's standalone retry returns row 1. NOWAIT concerns row locks and does not eliminate table-lock waits or other errors."	P23	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01017	current	scenarios/postgres/03-locking/nowait.yaml:6	scenarios/postgres/03-locking/nowait.yaml#setup	yaml-scalar	"CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);\nINSERT INTO accounts VALUES (1, 'alice', 100);\n"	P23	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01018	current	scenarios/postgres/03-locking/nowait.yaml:9	scenarios/postgres/03-locking/nowait.yaml#sessions[0]	yaml-scalar	"A"	P23	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01019	current	scenarios/postgres/03-locking/nowait.yaml:9	scenarios/postgres/03-locking/nowait.yaml#sessions[1]	yaml-scalar	"B"	P23	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01020	current	scenarios/postgres/03-locking/nowait.yaml:11	scenarios/postgres/03-locking/nowait.yaml#steps[0].A	yaml-scalar	"BEGIN"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01021	current	scenarios/postgres/03-locking/nowait.yaml:12	scenarios/postgres/03-locking/nowait.yaml#steps[1].A	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR UPDATE"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01022	current	scenarios/postgres/03-locking/nowait.yaml:13	scenarios/postgres/03-locking/nowait.yaml#steps[1].tl	yaml-scalar	"SELECT … FOR UPDATE (locks row 1)"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01023	current	scenarios/postgres/03-locking/nowait.yaml:15	scenarios/postgres/03-locking/nowait.yaml#steps[2].B.fails	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR UPDATE NOWAIT"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01024	current	scenarios/postgres/03-locking/nowait.yaml:16	scenarios/postgres/03-locking/nowait.yaml#steps[2].error	yaml-scalar	"55P03"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01025	current	scenarios/postgres/03-locking/nowait.yaml:17	scenarios/postgres/03-locking/nowait.yaml#steps[2].comment	yaml-scalar	"lock_not_available from the conflicting row-lock request"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01026	current	scenarios/postgres/03-locking/nowait.yaml:18	scenarios/postgres/03-locking/nowait.yaml#steps[2].tl	yaml-scalar	"… FOR UPDATE NOWAIT"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01027	current	scenarios/postgres/03-locking/nowait.yaml:20	scenarios/postgres/03-locking/nowait.yaml#steps[3].note	yaml-scalar	"Once A is done, the same statement succeeds."	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01028	current	scenarios/postgres/03-locking/nowait.yaml:21	scenarios/postgres/03-locking/nowait.yaml#steps[4].A	yaml-scalar	"COMMIT"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01029	current	scenarios/postgres/03-locking/nowait.yaml:22	scenarios/postgres/03-locking/nowait.yaml#steps[4].tl	yaml-scalar	"COMMIT (releases the lock)"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01030	current	scenarios/postgres/03-locking/nowait.yaml:23	scenarios/postgres/03-locking/nowait.yaml#steps[5].B	yaml-scalar	"SELECT id FROM accounts WHERE id = 1 FOR UPDATE NOWAIT"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01031	current	scenarios/postgres/03-locking/nowait.yaml:24	scenarios/postgres/03-locking/nowait.yaml#steps[5].expect[0].id	yaml-scalar	"1"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01032	current	scenarios/postgres/03-locking/nowait.yaml:25	scenarios/postgres/03-locking/nowait.yaml#steps[5].tl	yaml-scalar	"… NOWAIT → row 1"	P23	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01033	base	scenarios/postgres/03-locking/skip-locked.yaml:1	scenarios/postgres/03-locking/skip-locked.yaml#title	yaml-scalar	"SKIP LOCKED: take what's free, skip what's taken"	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#title (scenarios/postgres/03-locking/skip-locked.yaml:1); current scoped support applies
C01034	base	scenarios/postgres/03-locking/skip-locked.yaml:2	scenarios/postgres/03-locking/skip-locked.yaml#claim	yaml-scalar	"SELECT ... FOR UPDATE SKIP LOCKED silently skips locked rows, so concurrent workers each grab a different row without ever waiting — the backbone of Postgres job queues."	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/skip-locked.yaml#claim; semantic decisions A1-A10 in audit report
C01035	base	scenarios/postgres/03-locking/skip-locked.yaml:6	scenarios/postgres/03-locking/skip-locked.yaml#setup	yaml-scalar	"CREATE TABLE jobs (id int PRIMARY KEY, task text NOT NULL);\nINSERT INTO jobs VALUES (1, 'send email'), (2, 'resize image'), (3, 'build report');\n"	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#setup (scenarios/postgres/03-locking/skip-locked.yaml:7); current scoped support applies
C01036	base	scenarios/postgres/03-locking/skip-locked.yaml:9	scenarios/postgres/03-locking/skip-locked.yaml#sessions[0]	yaml-scalar	"A"	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#sessions[0] (scenarios/postgres/03-locking/skip-locked.yaml:10); current scoped support applies
C01037	base	scenarios/postgres/03-locking/skip-locked.yaml:9	scenarios/postgres/03-locking/skip-locked.yaml#sessions[1]	yaml-scalar	"B"	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#sessions[1] (scenarios/postgres/03-locking/skip-locked.yaml:10); current scoped support applies
C01038	base	scenarios/postgres/03-locking/skip-locked.yaml:9	scenarios/postgres/03-locking/skip-locked.yaml#sessions[2]	yaml-scalar	"C"	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#sessions[2] (scenarios/postgres/03-locking/skip-locked.yaml:10); current scoped support applies
C01039	base	scenarios/postgres/03-locking/skip-locked.yaml:9	scenarios/postgres/03-locking/skip-locked.yaml#sessions[3]	yaml-scalar	"D"	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#sessions[3] (scenarios/postgres/03-locking/skip-locked.yaml:10); current scoped support applies
C01040	base	scenarios/postgres/03-locking/skip-locked.yaml:11	scenarios/postgres/03-locking/skip-locked.yaml#steps[0].note	yaml-scalar	"Four workers run the exact same query at the same time."	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/skip-locked.yaml#steps[0].note; semantic decisions A1-A10 in audit report
C01041	base	scenarios/postgres/03-locking/skip-locked.yaml:12	scenarios/postgres/03-locking/skip-locked.yaml#steps[1].A	yaml-scalar	"BEGIN"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[1].A (scenarios/postgres/03-locking/skip-locked.yaml:13); current scoped support applies
C01042	base	scenarios/postgres/03-locking/skip-locked.yaml:13	scenarios/postgres/03-locking/skip-locked.yaml#steps[2].A	yaml-scalar	"SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[2].A (scenarios/postgres/03-locking/skip-locked.yaml:14); current scoped support applies
C01043	base	scenarios/postgres/03-locking/skip-locked.yaml:14	scenarios/postgres/03-locking/skip-locked.yaml#steps[2].expect[0].id	yaml-scalar	"1"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[2].expect[0].id (scenarios/postgres/03-locking/skip-locked.yaml:15); current scoped support applies
C01044	base	scenarios/postgres/03-locking/skip-locked.yaml:15	scenarios/postgres/03-locking/skip-locked.yaml#steps[2].tl	yaml-scalar	"SKIP LOCKED → job 1"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[2].tl (scenarios/postgres/03-locking/skip-locked.yaml:16); current scoped support applies
C01045	base	scenarios/postgres/03-locking/skip-locked.yaml:17	scenarios/postgres/03-locking/skip-locked.yaml#steps[3].B	yaml-scalar	"BEGIN"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[3].B (scenarios/postgres/03-locking/skip-locked.yaml:18); current scoped support applies
C01046	base	scenarios/postgres/03-locking/skip-locked.yaml:18	scenarios/postgres/03-locking/skip-locked.yaml#steps[4].B	yaml-scalar	"SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[4].B (scenarios/postgres/03-locking/skip-locked.yaml:19); current scoped support applies
C01047	base	scenarios/postgres/03-locking/skip-locked.yaml:19	scenarios/postgres/03-locking/skip-locked.yaml#steps[4].expect[0].id	yaml-scalar	"2"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[4].expect[0].id (scenarios/postgres/03-locking/skip-locked.yaml:20); current scoped support applies
C01048	base	scenarios/postgres/03-locking/skip-locked.yaml:20	scenarios/postgres/03-locking/skip-locked.yaml#steps[4].comment	yaml-scalar	"job 1 is locked by A — skipped, no waiting"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[4].comment (scenarios/postgres/03-locking/skip-locked.yaml:21); current scoped support applies
C01049	base	scenarios/postgres/03-locking/skip-locked.yaml:21	scenarios/postgres/03-locking/skip-locked.yaml#steps[4].tl	yaml-scalar	"SKIP LOCKED → job 2 (skips 1)"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[4].tl (scenarios/postgres/03-locking/skip-locked.yaml:22); current scoped support applies
C01050	base	scenarios/postgres/03-locking/skip-locked.yaml:23	scenarios/postgres/03-locking/skip-locked.yaml#steps[5].C	yaml-scalar	"BEGIN"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[5].C (scenarios/postgres/03-locking/skip-locked.yaml:24); current scoped support applies
C01051	base	scenarios/postgres/03-locking/skip-locked.yaml:24	scenarios/postgres/03-locking/skip-locked.yaml#steps[6].C	yaml-scalar	"SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[6].C (scenarios/postgres/03-locking/skip-locked.yaml:25); current scoped support applies
C01052	base	scenarios/postgres/03-locking/skip-locked.yaml:25	scenarios/postgres/03-locking/skip-locked.yaml#steps[6].expect[0].id	yaml-scalar	"3"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[6].expect[0].id (scenarios/postgres/03-locking/skip-locked.yaml:26); current scoped support applies
C01053	base	scenarios/postgres/03-locking/skip-locked.yaml:26	scenarios/postgres/03-locking/skip-locked.yaml#steps[6].tl	yaml-scalar	"SKIP LOCKED → job 3 (skips 1, 2)"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[6].tl (scenarios/postgres/03-locking/skip-locked.yaml:27); current scoped support applies
C01054	base	scenarios/postgres/03-locking/skip-locked.yaml:28	scenarios/postgres/03-locking/skip-locked.yaml#steps[7].note	yaml-scalar	"Worker D finds the queue empty — an instant answer, not a wait."	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/skip-locked.yaml#steps[7].note; semantic decisions A1-A10 in audit report
C01055	base	scenarios/postgres/03-locking/skip-locked.yaml:29	scenarios/postgres/03-locking/skip-locked.yaml#steps[8].D	yaml-scalar	"SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[8].D (scenarios/postgres/03-locking/skip-locked.yaml:30); current scoped support applies
C01056	base	scenarios/postgres/03-locking/skip-locked.yaml:31	scenarios/postgres/03-locking/skip-locked.yaml#steps[8].tl	yaml-scalar	"SKIP LOCKED → nothing free"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[8].tl (scenarios/postgres/03-locking/skip-locked.yaml:32); current scoped support applies
C01057	base	scenarios/postgres/03-locking/skip-locked.yaml:33	scenarios/postgres/03-locking/skip-locked.yaml#steps[9].note	yaml-scalar	"A worker crash (rollback) puts its job straight back on the queue."	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/03-locking/skip-locked.yaml#steps[9].note; semantic decisions A1-A10 in audit report
C01058	base	scenarios/postgres/03-locking/skip-locked.yaml:34	scenarios/postgres/03-locking/skip-locked.yaml#steps[10].A	yaml-scalar	"ROLLBACK"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[10].A (scenarios/postgres/03-locking/skip-locked.yaml:35); current scoped support applies
C01059	base	scenarios/postgres/03-locking/skip-locked.yaml:35	scenarios/postgres/03-locking/skip-locked.yaml#steps[10].tl	yaml-scalar	"ROLLBACK → job 1 back on the queue"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[10].tl (scenarios/postgres/03-locking/skip-locked.yaml:36); current scoped support applies
C01060	base	scenarios/postgres/03-locking/skip-locked.yaml:36	scenarios/postgres/03-locking/skip-locked.yaml#steps[11].D	yaml-scalar	"SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[11].D (scenarios/postgres/03-locking/skip-locked.yaml:37); current scoped support applies
C01061	base	scenarios/postgres/03-locking/skip-locked.yaml:37	scenarios/postgres/03-locking/skip-locked.yaml#steps[11].expect[0].id	yaml-scalar	"1"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[11].expect[0].id (scenarios/postgres/03-locking/skip-locked.yaml:38); current scoped support applies
C01062	base	scenarios/postgres/03-locking/skip-locked.yaml:38	scenarios/postgres/03-locking/skip-locked.yaml#steps[11].tl	yaml-scalar	"SKIP LOCKED → job 1"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[11].tl (scenarios/postgres/03-locking/skip-locked.yaml:39); current scoped support applies
C01063	base	scenarios/postgres/03-locking/skip-locked.yaml:40	scenarios/postgres/03-locking/skip-locked.yaml#steps[12].B	yaml-scalar	"COMMIT"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[12].B (scenarios/postgres/03-locking/skip-locked.yaml:41); current scoped support applies
C01064	base	scenarios/postgres/03-locking/skip-locked.yaml:41	scenarios/postgres/03-locking/skip-locked.yaml#steps[13].C	yaml-scalar	"COMMIT"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/03-locking/skip-locked.yaml#steps[13].C (scenarios/postgres/03-locking/skip-locked.yaml:42); current scoped support applies
C01065	current	scenarios/postgres/03-locking/skip-locked.yaml:1	scenarios/postgres/03-locking/skip-locked.yaml#title	yaml-scalar	"SKIP LOCKED: take what's free, skip what's taken"	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01066	current	scenarios/postgres/03-locking/skip-locked.yaml:2	scenarios/postgres/03-locking/skip-locked.yaml#claim	yaml-scalar	"In overlapping transactions, the scheduled FOR UPDATE SKIP LOCKED reads return jobs 1, 2 and 3, then no available row. After A explicitly rolls back, D reads job 1 again. No external execution or universal no-wait guarantee is established."	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01067	current	scenarios/postgres/03-locking/skip-locked.yaml:7	scenarios/postgres/03-locking/skip-locked.yaml#setup	yaml-scalar	"CREATE TABLE jobs (id int PRIMARY KEY, task text NOT NULL);\nINSERT INTO jobs VALUES (1, 'send email'), (2, 'resize image'), (3, 'build report');\n"	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01068	current	scenarios/postgres/03-locking/skip-locked.yaml:10	scenarios/postgres/03-locking/skip-locked.yaml#sessions[0]	yaml-scalar	"A"	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01069	current	scenarios/postgres/03-locking/skip-locked.yaml:10	scenarios/postgres/03-locking/skip-locked.yaml#sessions[1]	yaml-scalar	"B"	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01070	current	scenarios/postgres/03-locking/skip-locked.yaml:10	scenarios/postgres/03-locking/skip-locked.yaml#sessions[2]	yaml-scalar	"C"	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01071	current	scenarios/postgres/03-locking/skip-locked.yaml:10	scenarios/postgres/03-locking/skip-locked.yaml#sessions[3]	yaml-scalar	"D"	P24	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01072	current	scenarios/postgres/03-locking/skip-locked.yaml:12	scenarios/postgres/03-locking/skip-locked.yaml#steps[0].note	yaml-scalar	"Four sessions run the same query in the listed order with overlapping transactions."	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01073	current	scenarios/postgres/03-locking/skip-locked.yaml:13	scenarios/postgres/03-locking/skip-locked.yaml#steps[1].A	yaml-scalar	"BEGIN"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01074	current	scenarios/postgres/03-locking/skip-locked.yaml:14	scenarios/postgres/03-locking/skip-locked.yaml#steps[2].A	yaml-scalar	"SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01075	current	scenarios/postgres/03-locking/skip-locked.yaml:15	scenarios/postgres/03-locking/skip-locked.yaml#steps[2].expect[0].id	yaml-scalar	"1"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01076	current	scenarios/postgres/03-locking/skip-locked.yaml:16	scenarios/postgres/03-locking/skip-locked.yaml#steps[2].tl	yaml-scalar	"SKIP LOCKED → job 1"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01077	current	scenarios/postgres/03-locking/skip-locked.yaml:18	scenarios/postgres/03-locking/skip-locked.yaml#steps[3].B	yaml-scalar	"BEGIN"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01078	current	scenarios/postgres/03-locking/skip-locked.yaml:19	scenarios/postgres/03-locking/skip-locked.yaml#steps[4].B	yaml-scalar	"SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01079	current	scenarios/postgres/03-locking/skip-locked.yaml:20	scenarios/postgres/03-locking/skip-locked.yaml#steps[4].expect[0].id	yaml-scalar	"2"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01080	current	scenarios/postgres/03-locking/skip-locked.yaml:21	scenarios/postgres/03-locking/skip-locked.yaml#steps[4].comment	yaml-scalar	"job 1 is locked by A — skipped, no waiting"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01081	current	scenarios/postgres/03-locking/skip-locked.yaml:22	scenarios/postgres/03-locking/skip-locked.yaml#steps[4].tl	yaml-scalar	"SKIP LOCKED → job 2 (skips 1)"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01082	current	scenarios/postgres/03-locking/skip-locked.yaml:24	scenarios/postgres/03-locking/skip-locked.yaml#steps[5].C	yaml-scalar	"BEGIN"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01083	current	scenarios/postgres/03-locking/skip-locked.yaml:25	scenarios/postgres/03-locking/skip-locked.yaml#steps[6].C	yaml-scalar	"SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01084	current	scenarios/postgres/03-locking/skip-locked.yaml:26	scenarios/postgres/03-locking/skip-locked.yaml#steps[6].expect[0].id	yaml-scalar	"3"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01085	current	scenarios/postgres/03-locking/skip-locked.yaml:27	scenarios/postgres/03-locking/skip-locked.yaml#steps[6].tl	yaml-scalar	"SKIP LOCKED → job 3 (skips 1, 2)"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01086	current	scenarios/postgres/03-locking/skip-locked.yaml:29	scenarios/postgres/03-locking/skip-locked.yaml#steps[7].note	yaml-scalar	"D finds no lockable row in this query; three rows still exist."	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01087	current	scenarios/postgres/03-locking/skip-locked.yaml:30	scenarios/postgres/03-locking/skip-locked.yaml#steps[8].D	yaml-scalar	"SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01088	current	scenarios/postgres/03-locking/skip-locked.yaml:32	scenarios/postgres/03-locking/skip-locked.yaml#steps[8].tl	yaml-scalar	"SKIP LOCKED → nothing free"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01089	current	scenarios/postgres/03-locking/skip-locked.yaml:34	scenarios/postgres/03-locking/skip-locked.yaml#steps[9].note	yaml-scalar	"Explicit ROLLBACK releases A's row lock; a process crash is not injected."	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01090	current	scenarios/postgres/03-locking/skip-locked.yaml:35	scenarios/postgres/03-locking/skip-locked.yaml#steps[10].A	yaml-scalar	"ROLLBACK"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01091	current	scenarios/postgres/03-locking/skip-locked.yaml:36	scenarios/postgres/03-locking/skip-locked.yaml#steps[10].tl	yaml-scalar	"ROLLBACK → job 1 back on the queue"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01092	current	scenarios/postgres/03-locking/skip-locked.yaml:37	scenarios/postgres/03-locking/skip-locked.yaml#steps[11].D	yaml-scalar	"SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01093	current	scenarios/postgres/03-locking/skip-locked.yaml:38	scenarios/postgres/03-locking/skip-locked.yaml#steps[11].expect[0].id	yaml-scalar	"1"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01094	current	scenarios/postgres/03-locking/skip-locked.yaml:39	scenarios/postgres/03-locking/skip-locked.yaml#steps[11].tl	yaml-scalar	"SKIP LOCKED → job 1"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01095	current	scenarios/postgres/03-locking/skip-locked.yaml:41	scenarios/postgres/03-locking/skip-locked.yaml#steps[12].B	yaml-scalar	"COMMIT"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01096	current	scenarios/postgres/03-locking/skip-locked.yaml:42	scenarios/postgres/03-locking/skip-locked.yaml#steps[13].C	yaml-scalar	"COMMIT"	P24	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; D={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"D":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01097	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:1	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#title	yaml-scalar	"Dead tuples and bloat"	P25	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#title (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:1); current scoped support applies
C01098	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:2	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#claim	yaml-scalar	"Every UPDATE leaves a dead tuple behind and every DELETE leaves the row on disk — so a table's file only ever grows, no matter how much data you delete."	P25	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#claim; semantic decisions A1-A10 in audit report
C01099	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:5	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#setup	yaml-scalar	"CREATE EXTENSION pageinspect;\nCREATE TABLE counters (id int PRIMARY KEY, n int NOT NULL);\nCREATE TABLE bloat (id int PRIMARY KEY, filler text NOT NULL);\n"	P25	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#setup (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:7); current scoped support applies
C01100	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:9	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#sessions[0]	yaml-scalar	"A"	P25	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#sessions[0] (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:11); current scoped support applies
C01101	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:11	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[0].A	yaml-scalar	"INSERT INTO counters VALUES (1, 0) RETURNING xmin, n"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[0].A (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:13); current scoped support applies
C01102	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:12	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[0].capture	yaml-scalar	"x0"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[0].capture (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:14); current scoped support applies
C01103	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:13	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[1].note	yaml-scalar	"Three updates to one row. Watch each one get a fresh xid — and leave a corpse."	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[1].note (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:15); current scoped support applies
C01104	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:14	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[2].A	yaml-scalar	"UPDATE counters SET n = 1 WHERE id = 1 RETURNING xmin, n"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[2].A (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:16); current scoped support applies
C01105	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:15	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[2].capture	yaml-scalar	"x1"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[2].capture (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:17); current scoped support applies
C01106	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:16	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[3].A	yaml-scalar	"UPDATE counters SET n = 2 WHERE id = 1 RETURNING xmin, n"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[3].A (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:18); current scoped support applies
C01107	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:17	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[3].capture	yaml-scalar	"x2"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[3].capture (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:19); current scoped support applies
C01108	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:18	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[4].A	yaml-scalar	"UPDATE counters SET n = 3 WHERE id = 1 RETURNING xmin, n"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[4].A (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:20); current scoped support applies
C01109	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:19	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[4].capture	yaml-scalar	"x3"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[4].capture (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:21); current scoped support applies
C01110	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:21	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[5].note	yaml-scalar	"SELECT sees one row. The page holds four tuples — a version chain, three of them dead."	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[5].note (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:23); current scoped support applies
C01111	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:22	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[6].A	yaml-scalar	"SELECT n FROM counters"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[6].A (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:24); current scoped support applies
C01112	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:23	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].A	yaml-scalar	"SELECT lp, t_xmin, t_xmax, t_ctid\nFROM heap_page_items(get_raw_page('counters', 0)) ORDER BY lp\n"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].A (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:26); current scoped support applies
C01113	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:27	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[0].lp	yaml-scalar	"1"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[0].lp (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:30); current scoped support applies
C01114	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:27	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[0].t_xmin	yaml-scalar	"${x0.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[0].t_xmin (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:30); current scoped support applies
C01115	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:27	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[0].t_xmax	yaml-scalar	"${x1.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[0].t_xmax (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:30); current scoped support applies
C01116	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:27	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[0].t_ctid	yaml-scalar	"(0,2)"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[0].t_ctid (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:30); current scoped support applies
C01117	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:28	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[1].lp	yaml-scalar	"2"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[1].lp (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:31); current scoped support applies
C01118	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:28	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[1].t_xmin	yaml-scalar	"${x1.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[1].t_xmin (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:31); current scoped support applies
C01119	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:28	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[1].t_xmax	yaml-scalar	"${x2.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[1].t_xmax (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:31); current scoped support applies
C01120	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:28	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[1].t_ctid	yaml-scalar	"(0,3)"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[1].t_ctid (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:31); current scoped support applies
C01121	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:29	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[2].lp	yaml-scalar	"3"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[2].lp (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:32); current scoped support applies
C01122	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:29	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[2].t_xmin	yaml-scalar	"${x2.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[2].t_xmin (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:32); current scoped support applies
C01123	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:29	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[2].t_xmax	yaml-scalar	"${x3.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[2].t_xmax (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:32); current scoped support applies
C01124	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:29	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[2].t_ctid	yaml-scalar	"(0,4)"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[2].t_ctid (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:32); current scoped support applies
C01125	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:30	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[3].lp	yaml-scalar	"4"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[3].lp (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:33); current scoped support applies
C01126	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:30	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[3].t_xmin	yaml-scalar	"${x3.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[3].t_xmin (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:33); current scoped support applies
C01127	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:30	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[3].t_xmax	yaml-scalar	"0"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[3].t_xmax (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:33); current scoped support applies
C01128	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:30	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[3].t_ctid	yaml-scalar	"(0,4)"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[3].t_ctid (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:33); current scoped support applies
C01129	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:32	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[8].note	yaml-scalar	"The same effect at scale: 1000 rows fit in 5 pages of 8 kB."	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[8].note (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:35); current scoped support applies
C01130	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:33	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[9].A	yaml-scalar	"INSERT INTO bloat SELECT g, 'x' FROM generate_series(1, 1000) g"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[9].A (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:36); current scoped support applies
C01131	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:34	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[10].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[10].A (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:37); current scoped support applies
C01132	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:35	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[10].expect[0].pages	yaml-scalar	"5"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[10].expect[0].pages (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:38); current scoped support applies
C01133	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:37	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[11].note	yaml-scalar	"One UPDATE of every row = a full second copy of the table."	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[11].note; semantic decisions A1-A10 in audit report
C01134	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:38	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[12].A	yaml-scalar	"UPDATE bloat SET filler = 'y'"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[12].A (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:41); current scoped support applies
C01135	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:39	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[13].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[13].A (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:42); current scoped support applies
C01136	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:40	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[13].expect[0].pages	yaml-scalar	"9"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[13].expect[0].pages (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:43); current scoped support applies
C01137	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:42	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[14].note	yaml-scalar	"Now delete everything. Zero rows — and not a single byte returned."	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[14].note (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:45); current scoped support applies
C01138	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:43	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[15].A	yaml-scalar	"DELETE FROM bloat"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[15].A (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:46); current scoped support applies
C01139	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:44	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[16].A	yaml-scalar	"SELECT count(*)::int AS live_rows FROM bloat"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[16].A (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:47); current scoped support applies
C01140	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:45	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[16].expect[0].live_rows	yaml-scalar	"0"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[16].expect[0].live_rows (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:48); current scoped support applies
C01141	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:46	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[17].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[17].A (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:49); current scoped support applies
C01142	base	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:47	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[17].expect[0].pages	yaml-scalar	"9"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[17].expect[0].pages (scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:50); current scoped support applies
C01143	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:1	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#title	yaml-scalar	"Dead tuples and bloat"	P25	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01144	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:2	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#claim	yaml-scalar	"In this setup three updates leave four inspected tuple versions and one live value. Updating 1000 rows grows the heap from 5 to 9 pages; deleting them leaves zero live rows and 9 pages at the next observation. Reuse, pruning and vacuum can change later size."	P25	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01145	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:7	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#setup	yaml-scalar	"CREATE EXTENSION pageinspect;\nCREATE TABLE counters (id int PRIMARY KEY, n int NOT NULL);\nCREATE TABLE bloat (id int PRIMARY KEY, filler text NOT NULL);\n"	P25	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01146	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:11	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#sessions[0]	yaml-scalar	"A"	P25	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01147	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:13	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[0].A	yaml-scalar	"INSERT INTO counters VALUES (1, 0) RETURNING xmin, n"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01148	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:14	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[0].capture	yaml-scalar	"x0"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01149	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:15	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[1].note	yaml-scalar	"Three updates to one row. Watch each one get a fresh xid — and leave a corpse."	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01150	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:16	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[2].A	yaml-scalar	"UPDATE counters SET n = 1 WHERE id = 1 RETURNING xmin, n"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01151	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:17	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[2].capture	yaml-scalar	"x1"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01152	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:18	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[3].A	yaml-scalar	"UPDATE counters SET n = 2 WHERE id = 1 RETURNING xmin, n"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01153	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:19	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[3].capture	yaml-scalar	"x2"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01154	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:20	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[4].A	yaml-scalar	"UPDATE counters SET n = 3 WHERE id = 1 RETURNING xmin, n"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01155	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:21	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[4].capture	yaml-scalar	"x3"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01156	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:23	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[5].note	yaml-scalar	"SELECT sees one row. The page holds four tuples — a version chain, three of them dead."	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01157	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:24	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[6].A	yaml-scalar	"SELECT n FROM counters"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01158	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:25	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[6].expect[0].n	yaml-scalar	"3"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01159	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:26	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].A	yaml-scalar	"SELECT lp, t_xmin, t_xmax, t_ctid\nFROM heap_page_items(get_raw_page('counters', 0)) ORDER BY lp\n"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01160	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:30	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[0].lp	yaml-scalar	"1"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01161	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:30	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[0].t_xmin	yaml-scalar	"${x0.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01162	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:30	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[0].t_xmax	yaml-scalar	"${x1.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01163	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:30	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[0].t_ctid	yaml-scalar	"(0,2)"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01164	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:31	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[1].lp	yaml-scalar	"2"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01165	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:31	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[1].t_xmin	yaml-scalar	"${x1.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01166	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:31	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[1].t_xmax	yaml-scalar	"${x2.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01167	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:31	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[1].t_ctid	yaml-scalar	"(0,3)"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01168	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:32	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[2].lp	yaml-scalar	"3"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01169	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:32	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[2].t_xmin	yaml-scalar	"${x2.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01170	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:32	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[2].t_xmax	yaml-scalar	"${x3.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01171	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:32	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[2].t_ctid	yaml-scalar	"(0,4)"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01172	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:33	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[3].lp	yaml-scalar	"4"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01173	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:33	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[3].t_xmin	yaml-scalar	"${x3.xmin}"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01174	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:33	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[3].t_xmax	yaml-scalar	"0"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01175	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:33	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[7].expect[3].t_ctid	yaml-scalar	"(0,4)"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01176	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:35	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[8].note	yaml-scalar	"The same effect at scale: 1000 rows fit in 5 pages of 8 kB."	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01177	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:36	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[9].A	yaml-scalar	"INSERT INTO bloat SELECT g, 'x' FROM generate_series(1, 1000) g"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01178	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:37	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[10].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01179	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:38	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[10].expect[0].pages	yaml-scalar	"5"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01180	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:40	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[11].note	yaml-scalar	"This UPDATE of all 1000 rows grows the heap from 5 to 9 pages, not an exact doubling."	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01181	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:41	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[12].A	yaml-scalar	"UPDATE bloat SET filler = 'y'"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01182	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:42	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[13].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01183	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:43	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[13].expect[0].pages	yaml-scalar	"9"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01184	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:45	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[14].note	yaml-scalar	"Now delete everything. Zero rows — and not a single byte returned."	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01185	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:46	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[15].A	yaml-scalar	"DELETE FROM bloat"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01186	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:47	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[16].A	yaml-scalar	"SELECT count(*)::int AS live_rows FROM bloat"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01187	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:48	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[16].expect[0].live_rows	yaml-scalar	"0"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01188	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:49	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[17].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01189	current	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml:50	scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml#steps[17].expect[0].pages	yaml-scalar	"9"	P25	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01190	base	scenarios/postgres/04-mvcc/long-transactions.ts:1	scenarios/postgres/04-mvcc/long-transactions.ts#line[1]	ts-line	"import { eq, scenario } from \"../../../harness/scenario\";"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[1] (scenarios/postgres/04-mvcc/long-transactions.ts:1); current scoped support applies
C01191	base	scenarios/postgres/04-mvcc/long-transactions.ts:3	scenarios/postgres/04-mvcc/long-transactions.ts#line[3]	ts-line	"export default scenario({"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[3] (scenarios/postgres/04-mvcc/long-transactions.ts:3); current scoped support applies
C01192	base	scenarios/postgres/04-mvcc/long-transactions.ts:4	scenarios/postgres/04-mvcc/long-transactions.ts#line[4]	ts-line	"  title: \"Long transactions block VACUUM\","	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Unsupported as stated; replacement is limited to the observed schedule and assertions identified by C01248	Narrowed at scenarios/postgres/04-mvcc/long-transactions.ts#line[4] (scenarios/postgres/04-mvcc/long-transactions.ts:4); C01248 records exact replacement text and support; no general exclusivity, fairness or all-work maintenance guarantee
C01193	base	scenarios/postgres/04-mvcc/long-transactions.ts:5	scenarios/postgres/04-mvcc/long-transactions.ts#line[5]	ts-line	"  claim:"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[5] (scenarios/postgres/04-mvcc/long-transactions.ts:5); current scoped support applies
C01194	base	scenarios/postgres/04-mvcc/long-transactions.ts:6	scenarios/postgres/04-mvcc/long-transactions.ts#line[6]	ts-line	"    \"VACUUM can only remove tuples no snapshot can still see — one long-running transaction holds the horizon back for every table, and VACUUM silently reclaims nothing until it ends.\","	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/long-transactions.ts#line[1]; scenarios/postgres/04-mvcc/long-transactions.ts#line[3]; scenarios/postgres/04-mvcc/long-transactions.ts#line[4]; scenarios/postgres/04-mvcc/long-transactions.ts#line[5]; scenarios/postgres/04-mvcc/long-transactions.ts#line[6]; scenarios/postgres/04-mvcc/long-transactions.ts#line[7]; scenarios/postgres/04-mvcc/long-transactions.ts#line[8]; scenarios/postgres/04-mvcc/long-transactions.ts#line[9]; scenarios/postgres/04-mvcc/long-transactions.ts#line[10]; scenarios/postgres/04-mvcc/long-transactions.ts#line[11]; scenarios/postgres/04-mvcc/long-transactions.ts#line[12]; scenarios/postgres/04-mvcc/long-transactions.ts#line[14]; scenarios/postgres/04-mvcc/long-transactions.ts#line[15]; scenarios/postgres/04-mvcc/long-transactions.ts#line[16]; semantic decisions A1-A10 in audit report
C01195	base	scenarios/postgres/04-mvcc/long-transactions.ts:7	scenarios/postgres/04-mvcc/long-transactions.ts#line[7]	ts-line	"  setup: `"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[7] (scenarios/postgres/04-mvcc/long-transactions.ts:7); current scoped support applies
C01196	base	scenarios/postgres/04-mvcc/long-transactions.ts:8	scenarios/postgres/04-mvcc/long-transactions.ts#line[8]	ts-line	"    CREATE EXTENSION pageinspect;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[8] (scenarios/postgres/04-mvcc/long-transactions.ts:8); current scoped support applies
C01197	base	scenarios/postgres/04-mvcc/long-transactions.ts:9	scenarios/postgres/04-mvcc/long-transactions.ts#line[9]	ts-line	"    CREATE TABLE jobs (id int PRIMARY KEY, status text NOT NULL);"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[9] (scenarios/postgres/04-mvcc/long-transactions.ts:9); current scoped support applies
C01198	base	scenarios/postgres/04-mvcc/long-transactions.ts:10	scenarios/postgres/04-mvcc/long-transactions.ts#line[10]	ts-line	"    INSERT INTO jobs VALUES (1, 'new');"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[10] (scenarios/postgres/04-mvcc/long-transactions.ts:10); current scoped support applies
C01199	base	scenarios/postgres/04-mvcc/long-transactions.ts:11	scenarios/postgres/04-mvcc/long-transactions.ts#line[11]	ts-line	"  `,"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[11] (scenarios/postgres/04-mvcc/long-transactions.ts:11); current scoped support applies
C01200	base	scenarios/postgres/04-mvcc/long-transactions.ts:12	scenarios/postgres/04-mvcc/long-transactions.ts#line[12]	ts-line	"  sessions: [\"A\", \"B\"],"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[12] (scenarios/postgres/04-mvcc/long-transactions.ts:12); current scoped support applies
C01201	base	scenarios/postgres/04-mvcc/long-transactions.ts:14	scenarios/postgres/04-mvcc/long-transactions.ts#line[14]	ts-line	"  async run({ A, B }, t) {"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[14] (scenarios/postgres/04-mvcc/long-transactions.ts:14); current scoped support applies
C01202	base	scenarios/postgres/04-mvcc/long-transactions.ts:15	scenarios/postgres/04-mvcc/long-transactions.ts#line[15]	ts-line	"    // #region demo"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[15] (scenarios/postgres/04-mvcc/long-transactions.ts:15); current scoped support applies
C01203	base	scenarios/postgres/04-mvcc/long-transactions.ts:16	scenarios/postgres/04-mvcc/long-transactions.ts#line[16]	ts-line	"    t.note(\"A opens a long report transaction — one query, then it sits there idle.\");"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[16] (scenarios/postgres/04-mvcc/long-transactions.ts:16); current scoped support applies
C01204	base	scenarios/postgres/04-mvcc/long-transactions.ts:17	scenarios/postgres/04-mvcc/long-transactions.ts#line[17]	ts-line	"    await A`BEGIN ISOLATION LEVEL REPEATABLE READ`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[17] (scenarios/postgres/04-mvcc/long-transactions.ts:17); current scoped support applies
C01205	base	scenarios/postgres/04-mvcc/long-transactions.ts:18	scenarios/postgres/04-mvcc/long-transactions.ts#line[18]	ts-line	"    const [j0] = await A`SELECT xmin, id, status FROM jobs`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[18] (scenarios/postgres/04-mvcc/long-transactions.ts:18); current scoped support applies
C01206	base	scenarios/postgres/04-mvcc/long-transactions.ts:20	scenarios/postgres/04-mvcc/long-transactions.ts#line[20]	ts-line	"    t.note(\"Meanwhile B churns through the row, leaving dead versions behind.\");"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[20] (scenarios/postgres/04-mvcc/long-transactions.ts:20); current scoped support applies
C01207	base	scenarios/postgres/04-mvcc/long-transactions.ts:21	scenarios/postgres/04-mvcc/long-transactions.ts#line[21]	ts-line	"    const [j1] = await B`UPDATE jobs SET status = 'running' WHERE id = 1 RETURNING xmin, status`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[21] (scenarios/postgres/04-mvcc/long-transactions.ts:21); current scoped support applies
C01208	base	scenarios/postgres/04-mvcc/long-transactions.ts:22	scenarios/postgres/04-mvcc/long-transactions.ts#line[22]	ts-line	"    const [j2] = await B`UPDATE jobs SET status = 'done' WHERE id = 1 RETURNING xmin, status`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[22] (scenarios/postgres/04-mvcc/long-transactions.ts:22); current scoped support applies
C01209	base	scenarios/postgres/04-mvcc/long-transactions.ts:23	scenarios/postgres/04-mvcc/long-transactions.ts#line[23]	ts-line	"    const [j3] = await B`UPDATE jobs SET status = 'archived' WHERE id = 1 RETURNING xmin, status`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[23] (scenarios/postgres/04-mvcc/long-transactions.ts:23); current scoped support applies
C01210	base	scenarios/postgres/04-mvcc/long-transactions.ts:25	scenarios/postgres/04-mvcc/long-transactions.ts#line[25]	ts-line	"    const chain = ["	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[25] (scenarios/postgres/04-mvcc/long-transactions.ts:25); current scoped support applies
C01211	base	scenarios/postgres/04-mvcc/long-transactions.ts:26	scenarios/postgres/04-mvcc/long-transactions.ts#line[26]	ts-line	"      { lp: 1, t_xmin: j0!.xmin, t_xmax: j1!.xmin, t_ctid: \"(0,2)\" },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[26] (scenarios/postgres/04-mvcc/long-transactions.ts:26); current scoped support applies
C01212	base	scenarios/postgres/04-mvcc/long-transactions.ts:27	scenarios/postgres/04-mvcc/long-transactions.ts#line[27]	ts-line	"      { lp: 2, t_xmin: j1!.xmin, t_xmax: j2!.xmin, t_ctid: \"(0,3)\" },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[27] (scenarios/postgres/04-mvcc/long-transactions.ts:27); current scoped support applies
C01213	base	scenarios/postgres/04-mvcc/long-transactions.ts:28	scenarios/postgres/04-mvcc/long-transactions.ts#line[28]	ts-line	"      { lp: 3, t_xmin: j2!.xmin, t_xmax: j3!.xmin, t_ctid: \"(0,4)\" },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[28] (scenarios/postgres/04-mvcc/long-transactions.ts:28); current scoped support applies
C01214	base	scenarios/postgres/04-mvcc/long-transactions.ts:29	scenarios/postgres/04-mvcc/long-transactions.ts#line[29]	ts-line	"      { lp: 4, t_xmin: j3!.xmin, t_xmax: 0, t_ctid: \"(0,4)\" },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[29] (scenarios/postgres/04-mvcc/long-transactions.ts:29); current scoped support applies
C01215	base	scenarios/postgres/04-mvcc/long-transactions.ts:30	scenarios/postgres/04-mvcc/long-transactions.ts#line[30]	ts-line	"    ];"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[30] (scenarios/postgres/04-mvcc/long-transactions.ts:30); current scoped support applies
C01216	base	scenarios/postgres/04-mvcc/long-transactions.ts:31	scenarios/postgres/04-mvcc/long-transactions.ts#line[31]	ts-line	"    const before = await B`"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[31] (scenarios/postgres/04-mvcc/long-transactions.ts:31); current scoped support applies
C01217	base	scenarios/postgres/04-mvcc/long-transactions.ts:32	scenarios/postgres/04-mvcc/long-transactions.ts#line[32]	ts-line	"      SELECT lp, t_xmin, t_xmax, t_ctid"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[32] (scenarios/postgres/04-mvcc/long-transactions.ts:32); current scoped support applies
C01218	base	scenarios/postgres/04-mvcc/long-transactions.ts:33	scenarios/postgres/04-mvcc/long-transactions.ts#line[33]	ts-line	"      FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[33] (scenarios/postgres/04-mvcc/long-transactions.ts:33); current scoped support applies
C01219	base	scenarios/postgres/04-mvcc/long-transactions.ts:34	scenarios/postgres/04-mvcc/long-transactions.ts#line[34]	ts-line	"    eq(before, chain);"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[34] (scenarios/postgres/04-mvcc/long-transactions.ts:34); current scoped support applies
C01220	base	scenarios/postgres/04-mvcc/long-transactions.ts:36	scenarios/postgres/04-mvcc/long-transactions.ts#line[36]	ts-line	"    await B`VACUUM jobs`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[36] (scenarios/postgres/04-mvcc/long-transactions.ts:36); current scoped support applies
C01221	base	scenarios/postgres/04-mvcc/long-transactions.ts:37	scenarios/postgres/04-mvcc/long-transactions.ts#line[37]	ts-line	"    t.note("	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[37] (scenarios/postgres/04-mvcc/long-transactions.ts:37); current scoped support applies
C01222	base	scenarios/postgres/04-mvcc/long-transactions.ts:38	scenarios/postgres/04-mvcc/long-transactions.ts#line[38]	ts-line	"      \"VACUUM ran, reported success — and removed nothing. A's snapshot might still need every one of those versions.\","	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/long-transactions.ts#line[37]; scenarios/postgres/04-mvcc/long-transactions.ts#line[38]; scenarios/postgres/04-mvcc/long-transactions.ts#line[39]; semantic decisions A1-A10 in audit report
C01223	base	scenarios/postgres/04-mvcc/long-transactions.ts:39	scenarios/postgres/04-mvcc/long-transactions.ts#line[39]	ts-line	"    );"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[39] (scenarios/postgres/04-mvcc/long-transactions.ts:39); current scoped support applies
C01224	base	scenarios/postgres/04-mvcc/long-transactions.ts:40	scenarios/postgres/04-mvcc/long-transactions.ts#line[40]	ts-line	"    const after = await B`"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[40] (scenarios/postgres/04-mvcc/long-transactions.ts:40); current scoped support applies
C01225	base	scenarios/postgres/04-mvcc/long-transactions.ts:41	scenarios/postgres/04-mvcc/long-transactions.ts#line[41]	ts-line	"      SELECT lp, t_xmin, t_xmax, t_ctid"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[41] (scenarios/postgres/04-mvcc/long-transactions.ts:41); current scoped support applies
C01226	base	scenarios/postgres/04-mvcc/long-transactions.ts:42	scenarios/postgres/04-mvcc/long-transactions.ts#line[42]	ts-line	"      FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[42] (scenarios/postgres/04-mvcc/long-transactions.ts:42); current scoped support applies
C01227	base	scenarios/postgres/04-mvcc/long-transactions.ts:43	scenarios/postgres/04-mvcc/long-transactions.ts#line[43]	ts-line	"    eq(after, chain, \"the heap page is byte-for-byte the same\");"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/long-transactions.ts#line[43]; scenarios/postgres/04-mvcc/long-transactions.ts#line[45]; semantic decisions A1-A10 in audit report
C01228	base	scenarios/postgres/04-mvcc/long-transactions.ts:45	scenarios/postgres/04-mvcc/long-transactions.ts#line[45]	ts-line	"    t.note(\"And indeed: A still reads the version from before all three updates.\");"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[45] (scenarios/postgres/04-mvcc/long-transactions.ts:45); current scoped support applies
C01229	base	scenarios/postgres/04-mvcc/long-transactions.ts:46	scenarios/postgres/04-mvcc/long-transactions.ts#line[46]	ts-line	"    const [stillNew] = await A`SELECT id, status FROM jobs`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[46] (scenarios/postgres/04-mvcc/long-transactions.ts:46); current scoped support applies
C01230	base	scenarios/postgres/04-mvcc/long-transactions.ts:47	scenarios/postgres/04-mvcc/long-transactions.ts#line[47]	ts-line	"    eq(stillNew!.status, \"new\");"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[47] (scenarios/postgres/04-mvcc/long-transactions.ts:47); current scoped support applies
C01231	base	scenarios/postgres/04-mvcc/long-transactions.ts:48	scenarios/postgres/04-mvcc/long-transactions.ts#line[48]	ts-line	"    await A`COMMIT`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[48] (scenarios/postgres/04-mvcc/long-transactions.ts:48); current scoped support applies
C01232	base	scenarios/postgres/04-mvcc/long-transactions.ts:50	scenarios/postgres/04-mvcc/long-transactions.ts#line[50]	ts-line	"    await B`VACUUM jobs`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[50] (scenarios/postgres/04-mvcc/long-transactions.ts:50); current scoped support applies
C01233	base	scenarios/postgres/04-mvcc/long-transactions.ts:51	scenarios/postgres/04-mvcc/long-transactions.ts#line[51]	ts-line	"    t.note(\"Same command, a moment after A commits — now the three dead versions are gone.\");"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[51] (scenarios/postgres/04-mvcc/long-transactions.ts:51); current scoped support applies
C01234	base	scenarios/postgres/04-mvcc/long-transactions.ts:52	scenarios/postgres/04-mvcc/long-transactions.ts#line[52]	ts-line	"    const cleaned = await B`"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[52] (scenarios/postgres/04-mvcc/long-transactions.ts:52); current scoped support applies
C01235	base	scenarios/postgres/04-mvcc/long-transactions.ts:53	scenarios/postgres/04-mvcc/long-transactions.ts#line[53]	ts-line	"      SELECT lp, lp_flags, t_xmin, t_xmax, t_ctid"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[53] (scenarios/postgres/04-mvcc/long-transactions.ts:53); current scoped support applies
C01236	base	scenarios/postgres/04-mvcc/long-transactions.ts:54	scenarios/postgres/04-mvcc/long-transactions.ts#line[54]	ts-line	"      FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[54] (scenarios/postgres/04-mvcc/long-transactions.ts:54); current scoped support applies
C01237	base	scenarios/postgres/04-mvcc/long-transactions.ts:55	scenarios/postgres/04-mvcc/long-transactions.ts#line[55]	ts-line	"    eq(cleaned, ["	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[55] (scenarios/postgres/04-mvcc/long-transactions.ts:55); current scoped support applies
C01238	base	scenarios/postgres/04-mvcc/long-transactions.ts:56	scenarios/postgres/04-mvcc/long-transactions.ts#line[56]	ts-line	"      { lp: 1, lp_flags: 2, t_xmin: null, t_xmax: null, t_ctid: null },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[56] (scenarios/postgres/04-mvcc/long-transactions.ts:56); current scoped support applies
C01239	base	scenarios/postgres/04-mvcc/long-transactions.ts:57	scenarios/postgres/04-mvcc/long-transactions.ts#line[57]	ts-line	"      { lp: 2, lp_flags: 0, t_xmin: null, t_xmax: null, t_ctid: null },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[57] (scenarios/postgres/04-mvcc/long-transactions.ts:57); current scoped support applies
C01240	base	scenarios/postgres/04-mvcc/long-transactions.ts:58	scenarios/postgres/04-mvcc/long-transactions.ts#line[58]	ts-line	"      { lp: 3, lp_flags: 0, t_xmin: null, t_xmax: null, t_ctid: null },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[58] (scenarios/postgres/04-mvcc/long-transactions.ts:58); current scoped support applies
C01241	base	scenarios/postgres/04-mvcc/long-transactions.ts:59	scenarios/postgres/04-mvcc/long-transactions.ts#line[59]	ts-line	"      { lp: 4, lp_flags: 1, t_xmin: j3!.xmin, t_xmax: 0, t_ctid: \"(0,4)\" },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[59] (scenarios/postgres/04-mvcc/long-transactions.ts:59); current scoped support applies
C01242	base	scenarios/postgres/04-mvcc/long-transactions.ts:60	scenarios/postgres/04-mvcc/long-transactions.ts#line[60]	ts-line	"    ]);"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[60] (scenarios/postgres/04-mvcc/long-transactions.ts:60); current scoped support applies
C01243	base	scenarios/postgres/04-mvcc/long-transactions.ts:61	scenarios/postgres/04-mvcc/long-transactions.ts#line[61]	ts-line	"    // #endregion demo"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[61] (scenarios/postgres/04-mvcc/long-transactions.ts:61); current scoped support applies
C01244	base	scenarios/postgres/04-mvcc/long-transactions.ts:62	scenarios/postgres/04-mvcc/long-transactions.ts#line[62]	ts-line	"  },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[62] (scenarios/postgres/04-mvcc/long-transactions.ts:62); current scoped support applies
C01245	base	scenarios/postgres/04-mvcc/long-transactions.ts:63	scenarios/postgres/04-mvcc/long-transactions.ts#line[63]	ts-line	"});"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/long-transactions.ts#line[63] (scenarios/postgres/04-mvcc/long-transactions.ts:63); current scoped support applies
C01246	current	scenarios/postgres/04-mvcc/long-transactions.ts:1	scenarios/postgres/04-mvcc/long-transactions.ts#line[1]	ts-line	"import { eq, scenario } from \"../../../harness/scenario\";"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01247	current	scenarios/postgres/04-mvcc/long-transactions.ts:3	scenarios/postgres/04-mvcc/long-transactions.ts#line[3]	ts-line	"export default scenario({"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01248	current	scenarios/postgres/04-mvcc/long-transactions.ts:4	scenarios/postgres/04-mvcc/long-transactions.ts#line[4]	ts-line	"  title: \"Tuple retention under an old snapshot\","	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: scenarios/postgres/04-mvcc/long-transactions.ts:15-59; assertions compare selected tuple fields before/after VACUUM, retained old value and reclamation after A commits; no all-work VACUUM blocking claim	Resolved: CLI Scenario title names tuple retention under an old snapshot; no claim that all VACUUM work stops
C01249	current	scenarios/postgres/04-mvcc/long-transactions.ts:5	scenarios/postgres/04-mvcc/long-transactions.ts#line[5]	ts-line	"  claim:"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01250	current	scenarios/postgres/04-mvcc/long-transactions.ts:6	scenarios/postgres/04-mvcc/long-transactions.ts#line[6]	ts-line	"    \"With A holding an old Repeatable Read snapshot, VACUUM leaves the inspected jobs tuple-chain fields unchanged and A still reads new. After A commits, a second VACUUM reclaims the three obsolete versions. Other tables and other VACUUM work are not observed.\","	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01251	current	scenarios/postgres/04-mvcc/long-transactions.ts:7	scenarios/postgres/04-mvcc/long-transactions.ts#line[7]	ts-line	"  setup: `"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01252	current	scenarios/postgres/04-mvcc/long-transactions.ts:8	scenarios/postgres/04-mvcc/long-transactions.ts#line[8]	ts-line	"    CREATE EXTENSION pageinspect;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01253	current	scenarios/postgres/04-mvcc/long-transactions.ts:9	scenarios/postgres/04-mvcc/long-transactions.ts#line[9]	ts-line	"    CREATE TABLE jobs (id int PRIMARY KEY, status text NOT NULL);"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01254	current	scenarios/postgres/04-mvcc/long-transactions.ts:10	scenarios/postgres/04-mvcc/long-transactions.ts#line[10]	ts-line	"    INSERT INTO jobs VALUES (1, 'new');"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01255	current	scenarios/postgres/04-mvcc/long-transactions.ts:11	scenarios/postgres/04-mvcc/long-transactions.ts#line[11]	ts-line	"  `,"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01256	current	scenarios/postgres/04-mvcc/long-transactions.ts:12	scenarios/postgres/04-mvcc/long-transactions.ts#line[12]	ts-line	"  sessions: [\"A\", \"B\"],"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01257	current	scenarios/postgres/04-mvcc/long-transactions.ts:14	scenarios/postgres/04-mvcc/long-transactions.ts#line[14]	ts-line	"  async run({ A, B }, t) {"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01258	current	scenarios/postgres/04-mvcc/long-transactions.ts:15	scenarios/postgres/04-mvcc/long-transactions.ts#line[15]	ts-line	"    // #region demo"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01259	current	scenarios/postgres/04-mvcc/long-transactions.ts:16	scenarios/postgres/04-mvcc/long-transactions.ts#line[16]	ts-line	"    t.note(\"A opens a long report transaction — one query, then it sits there idle.\");"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01260	current	scenarios/postgres/04-mvcc/long-transactions.ts:17	scenarios/postgres/04-mvcc/long-transactions.ts#line[17]	ts-line	"    await A`BEGIN ISOLATION LEVEL REPEATABLE READ`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01261	current	scenarios/postgres/04-mvcc/long-transactions.ts:18	scenarios/postgres/04-mvcc/long-transactions.ts#line[18]	ts-line	"    const [j0] = await A`SELECT xmin, id, status FROM jobs`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01262	current	scenarios/postgres/04-mvcc/long-transactions.ts:20	scenarios/postgres/04-mvcc/long-transactions.ts#line[20]	ts-line	"    t.note(\"Meanwhile B churns through the row, leaving dead versions behind.\");"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01263	current	scenarios/postgres/04-mvcc/long-transactions.ts:21	scenarios/postgres/04-mvcc/long-transactions.ts#line[21]	ts-line	"    const [j1] = await B`UPDATE jobs SET status = 'running' WHERE id = 1 RETURNING xmin, status`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01264	current	scenarios/postgres/04-mvcc/long-transactions.ts:22	scenarios/postgres/04-mvcc/long-transactions.ts#line[22]	ts-line	"    const [j2] = await B`UPDATE jobs SET status = 'done' WHERE id = 1 RETURNING xmin, status`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01265	current	scenarios/postgres/04-mvcc/long-transactions.ts:23	scenarios/postgres/04-mvcc/long-transactions.ts#line[23]	ts-line	"    const [j3] = await B`UPDATE jobs SET status = 'archived' WHERE id = 1 RETURNING xmin, status`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01266	current	scenarios/postgres/04-mvcc/long-transactions.ts:25	scenarios/postgres/04-mvcc/long-transactions.ts#line[25]	ts-line	"    const chain = ["	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01267	current	scenarios/postgres/04-mvcc/long-transactions.ts:26	scenarios/postgres/04-mvcc/long-transactions.ts#line[26]	ts-line	"      { lp: 1, t_xmin: j0!.xmin, t_xmax: j1!.xmin, t_ctid: \"(0,2)\" },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01268	current	scenarios/postgres/04-mvcc/long-transactions.ts:27	scenarios/postgres/04-mvcc/long-transactions.ts#line[27]	ts-line	"      { lp: 2, t_xmin: j1!.xmin, t_xmax: j2!.xmin, t_ctid: \"(0,3)\" },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01269	current	scenarios/postgres/04-mvcc/long-transactions.ts:28	scenarios/postgres/04-mvcc/long-transactions.ts#line[28]	ts-line	"      { lp: 3, t_xmin: j2!.xmin, t_xmax: j3!.xmin, t_ctid: \"(0,4)\" },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01270	current	scenarios/postgres/04-mvcc/long-transactions.ts:29	scenarios/postgres/04-mvcc/long-transactions.ts#line[29]	ts-line	"      { lp: 4, t_xmin: j3!.xmin, t_xmax: 0, t_ctid: \"(0,4)\" },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01271	current	scenarios/postgres/04-mvcc/long-transactions.ts:30	scenarios/postgres/04-mvcc/long-transactions.ts#line[30]	ts-line	"    ];"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01272	current	scenarios/postgres/04-mvcc/long-transactions.ts:31	scenarios/postgres/04-mvcc/long-transactions.ts#line[31]	ts-line	"    const before = await B`"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01273	current	scenarios/postgres/04-mvcc/long-transactions.ts:32	scenarios/postgres/04-mvcc/long-transactions.ts#line[32]	ts-line	"      SELECT lp, t_xmin, t_xmax, t_ctid"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01274	current	scenarios/postgres/04-mvcc/long-transactions.ts:33	scenarios/postgres/04-mvcc/long-transactions.ts#line[33]	ts-line	"      FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01275	current	scenarios/postgres/04-mvcc/long-transactions.ts:34	scenarios/postgres/04-mvcc/long-transactions.ts#line[34]	ts-line	"    eq(before, chain);"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01276	current	scenarios/postgres/04-mvcc/long-transactions.ts:36	scenarios/postgres/04-mvcc/long-transactions.ts#line[36]	ts-line	"    await B`VACUUM jobs`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01277	current	scenarios/postgres/04-mvcc/long-transactions.ts:37	scenarios/postgres/04-mvcc/long-transactions.ts#line[37]	ts-line	"    t.note("	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01278	current	scenarios/postgres/04-mvcc/long-transactions.ts:38	scenarios/postgres/04-mvcc/long-transactions.ts#line[38]	ts-line	"      \"VACUUM completed. The following assertion checks unchanged tuple-chain fields while A retains its old snapshot.\","	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01279	current	scenarios/postgres/04-mvcc/long-transactions.ts:39	scenarios/postgres/04-mvcc/long-transactions.ts#line[39]	ts-line	"    );"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01280	current	scenarios/postgres/04-mvcc/long-transactions.ts:40	scenarios/postgres/04-mvcc/long-transactions.ts#line[40]	ts-line	"    const after = await B`"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01281	current	scenarios/postgres/04-mvcc/long-transactions.ts:41	scenarios/postgres/04-mvcc/long-transactions.ts#line[41]	ts-line	"      SELECT lp, t_xmin, t_xmax, t_ctid"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01282	current	scenarios/postgres/04-mvcc/long-transactions.ts:42	scenarios/postgres/04-mvcc/long-transactions.ts#line[42]	ts-line	"      FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01283	current	scenarios/postgres/04-mvcc/long-transactions.ts:43	scenarios/postgres/04-mvcc/long-transactions.ts#line[43]	ts-line	"    eq(after, chain, \"the inspected tuple-chain fields are unchanged\");"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01284	current	scenarios/postgres/04-mvcc/long-transactions.ts:45	scenarios/postgres/04-mvcc/long-transactions.ts#line[45]	ts-line	"    t.note(\"And indeed: A still reads the version from before all three updates.\");"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01285	current	scenarios/postgres/04-mvcc/long-transactions.ts:46	scenarios/postgres/04-mvcc/long-transactions.ts#line[46]	ts-line	"    const [stillNew] = await A`SELECT id, status FROM jobs`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01286	current	scenarios/postgres/04-mvcc/long-transactions.ts:47	scenarios/postgres/04-mvcc/long-transactions.ts#line[47]	ts-line	"    eq(stillNew!.status, \"new\");"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01287	current	scenarios/postgres/04-mvcc/long-transactions.ts:48	scenarios/postgres/04-mvcc/long-transactions.ts#line[48]	ts-line	"    await A`COMMIT`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01288	current	scenarios/postgres/04-mvcc/long-transactions.ts:50	scenarios/postgres/04-mvcc/long-transactions.ts#line[50]	ts-line	"    await B`VACUUM jobs`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01289	current	scenarios/postgres/04-mvcc/long-transactions.ts:51	scenarios/postgres/04-mvcc/long-transactions.ts#line[51]	ts-line	"    t.note(\"Same command, a moment after A commits — now the three dead versions are gone.\");"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01290	current	scenarios/postgres/04-mvcc/long-transactions.ts:52	scenarios/postgres/04-mvcc/long-transactions.ts#line[52]	ts-line	"    const cleaned = await B`"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01291	current	scenarios/postgres/04-mvcc/long-transactions.ts:53	scenarios/postgres/04-mvcc/long-transactions.ts#line[53]	ts-line	"      SELECT lp, lp_flags, t_xmin, t_xmax, t_ctid"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01292	current	scenarios/postgres/04-mvcc/long-transactions.ts:54	scenarios/postgres/04-mvcc/long-transactions.ts#line[54]	ts-line	"      FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp`;"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01293	current	scenarios/postgres/04-mvcc/long-transactions.ts:55	scenarios/postgres/04-mvcc/long-transactions.ts#line[55]	ts-line	"    eq(cleaned, ["	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01294	current	scenarios/postgres/04-mvcc/long-transactions.ts:56	scenarios/postgres/04-mvcc/long-transactions.ts#line[56]	ts-line	"      { lp: 1, lp_flags: 2, t_xmin: null, t_xmax: null, t_ctid: null },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01295	current	scenarios/postgres/04-mvcc/long-transactions.ts:57	scenarios/postgres/04-mvcc/long-transactions.ts#line[57]	ts-line	"      { lp: 2, lp_flags: 0, t_xmin: null, t_xmax: null, t_ctid: null },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01296	current	scenarios/postgres/04-mvcc/long-transactions.ts:58	scenarios/postgres/04-mvcc/long-transactions.ts#line[58]	ts-line	"      { lp: 3, lp_flags: 0, t_xmin: null, t_xmax: null, t_ctid: null },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01297	current	scenarios/postgres/04-mvcc/long-transactions.ts:59	scenarios/postgres/04-mvcc/long-transactions.ts#line[59]	ts-line	"      { lp: 4, lp_flags: 1, t_xmin: j3!.xmin, t_xmax: 0, t_ctid: \"(0,4)\" },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01298	current	scenarios/postgres/04-mvcc/long-transactions.ts:60	scenarios/postgres/04-mvcc/long-transactions.ts#line[60]	ts-line	"    ]);"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01299	current	scenarios/postgres/04-mvcc/long-transactions.ts:61	scenarios/postgres/04-mvcc/long-transactions.ts#line[61]	ts-line	"    // #endregion demo"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01300	current	scenarios/postgres/04-mvcc/long-transactions.ts:62	scenarios/postgres/04-mvcc/long-transactions.ts#line[62]	ts-line	"  },"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01301	current	scenarios/postgres/04-mvcc/long-transactions.ts:63	scenarios/postgres/04-mvcc/long-transactions.ts#line[63]	ts-line	"});"	P26	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01302	base	scenarios/postgres/04-mvcc/row-versions.ts:1	scenarios/postgres/04-mvcc/row-versions.ts#line[1]	ts-line	"import { eq, scenario } from \"../../../harness/scenario\";"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[1] (scenarios/postgres/04-mvcc/row-versions.ts:1); current scoped support applies
C01303	base	scenarios/postgres/04-mvcc/row-versions.ts:3	scenarios/postgres/04-mvcc/row-versions.ts#line[3]	ts-line	"export default scenario({"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[3] (scenarios/postgres/04-mvcc/row-versions.ts:3); current scoped support applies
C01304	base	scenarios/postgres/04-mvcc/row-versions.ts:4	scenarios/postgres/04-mvcc/row-versions.ts#line[4]	ts-line	"  title: \"Row versions: xmin, xmax, ctid\","	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[4] (scenarios/postgres/04-mvcc/row-versions.ts:4); current scoped support applies
C01305	base	scenarios/postgres/04-mvcc/row-versions.ts:5	scenarios/postgres/04-mvcc/row-versions.ts#line[5]	ts-line	"  claim:"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[5] (scenarios/postgres/04-mvcc/row-versions.ts:5); current scoped support applies
C01306	base	scenarios/postgres/04-mvcc/row-versions.ts:6	scenarios/postgres/04-mvcc/row-versions.ts#line[6]	ts-line	"    \"UPDATE never modifies a row in place — it writes a new version stamped with its xid (xmin) and stamps the old one's xmax; DELETE only stamps xmax. Both versions stay on disk, visible with pageinspect.\","	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/row-versions.ts#line[1]; scenarios/postgres/04-mvcc/row-versions.ts#line[3]; scenarios/postgres/04-mvcc/row-versions.ts#line[4]; scenarios/postgres/04-mvcc/row-versions.ts#line[5]; scenarios/postgres/04-mvcc/row-versions.ts#line[6]; scenarios/postgres/04-mvcc/row-versions.ts#line[7]; scenarios/postgres/04-mvcc/row-versions.ts#line[8]; scenarios/postgres/04-mvcc/row-versions.ts#line[9]; scenarios/postgres/04-mvcc/row-versions.ts#line[10]; scenarios/postgres/04-mvcc/row-versions.ts#line[11]; scenarios/postgres/04-mvcc/row-versions.ts#line[12]; scenarios/postgres/04-mvcc/row-versions.ts#line[14]; scenarios/postgres/04-mvcc/row-versions.ts#line[15]; scenarios/postgres/04-mvcc/row-versions.ts#line[16]; scenarios/postgres/04-mvcc/row-versions.ts#line[17]; scenarios/postgres/04-mvcc/row-versions.ts#line[18]; semantic decisions A1-A10 in audit report
C01307	base	scenarios/postgres/04-mvcc/row-versions.ts:7	scenarios/postgres/04-mvcc/row-versions.ts#line[7]	ts-line	"  setup: `"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[7] (scenarios/postgres/04-mvcc/row-versions.ts:7); current scoped support applies
C01308	base	scenarios/postgres/04-mvcc/row-versions.ts:8	scenarios/postgres/04-mvcc/row-versions.ts#line[8]	ts-line	"    CREATE EXTENSION pageinspect;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[8] (scenarios/postgres/04-mvcc/row-versions.ts:8); current scoped support applies
C01309	base	scenarios/postgres/04-mvcc/row-versions.ts:9	scenarios/postgres/04-mvcc/row-versions.ts#line[9]	ts-line	"    CREATE TABLE accounts (id int PRIMARY KEY, balance int NOT NULL);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[9] (scenarios/postgres/04-mvcc/row-versions.ts:9); current scoped support applies
C01310	base	scenarios/postgres/04-mvcc/row-versions.ts:10	scenarios/postgres/04-mvcc/row-versions.ts#line[10]	ts-line	"    INSERT INTO accounts VALUES (1, 100);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[10] (scenarios/postgres/04-mvcc/row-versions.ts:10); current scoped support applies
C01311	base	scenarios/postgres/04-mvcc/row-versions.ts:11	scenarios/postgres/04-mvcc/row-versions.ts#line[11]	ts-line	"  `,"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[11] (scenarios/postgres/04-mvcc/row-versions.ts:11); current scoped support applies
C01312	base	scenarios/postgres/04-mvcc/row-versions.ts:12	scenarios/postgres/04-mvcc/row-versions.ts#line[12]	ts-line	"  sessions: [\"A\", \"B\"],"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[12] (scenarios/postgres/04-mvcc/row-versions.ts:12); current scoped support applies
C01313	base	scenarios/postgres/04-mvcc/row-versions.ts:14	scenarios/postgres/04-mvcc/row-versions.ts#line[14]	ts-line	"  async run({ A, B }, t) {"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[14] (scenarios/postgres/04-mvcc/row-versions.ts:14); current scoped support applies
C01314	base	scenarios/postgres/04-mvcc/row-versions.ts:15	scenarios/postgres/04-mvcc/row-versions.ts#line[15]	ts-line	"    // #region demo"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[15] (scenarios/postgres/04-mvcc/row-versions.ts:15); current scoped support applies
C01315	base	scenarios/postgres/04-mvcc/row-versions.ts:16	scenarios/postgres/04-mvcc/row-versions.ts#line[16]	ts-line	"    t.note("	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[16] (scenarios/postgres/04-mvcc/row-versions.ts:16); current scoped support applies
C01316	base	scenarios/postgres/04-mvcc/row-versions.ts:17	scenarios/postgres/04-mvcc/row-versions.ts#line[17]	ts-line	"      \"Every row carries hidden system columns: xmin = the transaction that created this version, xmax = the one that deleted or replaced it (0 = nobody yet), ctid = its physical address (page, slot).\","	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/row-versions.ts#line[1]; scenarios/postgres/04-mvcc/row-versions.ts#line[3]; scenarios/postgres/04-mvcc/row-versions.ts#line[4]; scenarios/postgres/04-mvcc/row-versions.ts#line[5]; scenarios/postgres/04-mvcc/row-versions.ts#line[6]; scenarios/postgres/04-mvcc/row-versions.ts#line[7]; scenarios/postgres/04-mvcc/row-versions.ts#line[8]; scenarios/postgres/04-mvcc/row-versions.ts#line[9]; scenarios/postgres/04-mvcc/row-versions.ts#line[10]; scenarios/postgres/04-mvcc/row-versions.ts#line[11]; scenarios/postgres/04-mvcc/row-versions.ts#line[12]; scenarios/postgres/04-mvcc/row-versions.ts#line[14]; scenarios/postgres/04-mvcc/row-versions.ts#line[15]; scenarios/postgres/04-mvcc/row-versions.ts#line[16]; scenarios/postgres/04-mvcc/row-versions.ts#line[17]; scenarios/postgres/04-mvcc/row-versions.ts#line[18]; semantic decisions A1-A10 in audit report
C01317	base	scenarios/postgres/04-mvcc/row-versions.ts:18	scenarios/postgres/04-mvcc/row-versions.ts#line[18]	ts-line	"    );"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[18] (scenarios/postgres/04-mvcc/row-versions.ts:18); current scoped support applies
C01318	base	scenarios/postgres/04-mvcc/row-versions.ts:19	scenarios/postgres/04-mvcc/row-versions.ts#line[19]	ts-line	"    const [v1] = await A`SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[19] (scenarios/postgres/04-mvcc/row-versions.ts:19); current scoped support applies
C01319	base	scenarios/postgres/04-mvcc/row-versions.ts:20	scenarios/postgres/04-mvcc/row-versions.ts#line[20]	ts-line	"    eq([v1!.xmax, v1!.ctid, v1!.balance], [0, \"(0,1)\", 100]);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[20] (scenarios/postgres/04-mvcc/row-versions.ts:20); current scoped support applies
C01320	base	scenarios/postgres/04-mvcc/row-versions.ts:22	scenarios/postgres/04-mvcc/row-versions.ts#line[22]	ts-line	"    await B`BEGIN ISOLATION LEVEL REPEATABLE READ`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[22] (scenarios/postgres/04-mvcc/row-versions.ts:22); current scoped support applies
C01321	base	scenarios/postgres/04-mvcc/row-versions.ts:23	scenarios/postgres/04-mvcc/row-versions.ts#line[23]	ts-line	"    const [b1] = await B`SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[23] (scenarios/postgres/04-mvcc/row-versions.ts:23); current scoped support applies
C01322	base	scenarios/postgres/04-mvcc/row-versions.ts:24	scenarios/postgres/04-mvcc/row-versions.ts#line[24]	ts-line	"    eq(b1!.xmin, v1!.xmin);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/row-versions.ts#line[24]; scenarios/postgres/04-mvcc/row-versions.ts#line[26]; semantic decisions A1-A10 in audit report
C01323	base	scenarios/postgres/04-mvcc/row-versions.ts:26	scenarios/postgres/04-mvcc/row-versions.ts#line[26]	ts-line	"    t.note(\"A's UPDATE doesn't touch that version — it writes a brand-new one at a new ctid.\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/row-versions.ts#line[24]; scenarios/postgres/04-mvcc/row-versions.ts#line[26]; semantic decisions A1-A10 in audit report
C01324	base	scenarios/postgres/04-mvcc/row-versions.ts:27	scenarios/postgres/04-mvcc/row-versions.ts#line[27]	ts-line	"    const [v2] = await A`"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[27] (scenarios/postgres/04-mvcc/row-versions.ts:27); current scoped support applies
C01325	base	scenarios/postgres/04-mvcc/row-versions.ts:28	scenarios/postgres/04-mvcc/row-versions.ts#line[28]	ts-line	"      UPDATE accounts SET balance = 200 WHERE id = 1"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[28] (scenarios/postgres/04-mvcc/row-versions.ts:28); current scoped support applies
C01326	base	scenarios/postgres/04-mvcc/row-versions.ts:29	scenarios/postgres/04-mvcc/row-versions.ts#line[29]	ts-line	"      RETURNING xmin, xmax, ctid, balance`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[29] (scenarios/postgres/04-mvcc/row-versions.ts:29); current scoped support applies
C01327	base	scenarios/postgres/04-mvcc/row-versions.ts:30	scenarios/postgres/04-mvcc/row-versions.ts#line[30]	ts-line	"    eq([v2!.ctid, v2!.balance], [\"(0,2)\", 200]);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[30] (scenarios/postgres/04-mvcc/row-versions.ts:30); current scoped support applies
C01328	base	scenarios/postgres/04-mvcc/row-versions.ts:32	scenarios/postgres/04-mvcc/row-versions.ts#line[32]	ts-line	"    t.note(\"B still reads the old version — but its xmax is no longer 0: A's xid is stamped on it.\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[32] (scenarios/postgres/04-mvcc/row-versions.ts:32); current scoped support applies
C01329	base	scenarios/postgres/04-mvcc/row-versions.ts:33	scenarios/postgres/04-mvcc/row-versions.ts#line[33]	ts-line	"    const [b2] = await B`SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[33] (scenarios/postgres/04-mvcc/row-versions.ts:33); current scoped support applies
C01330	base	scenarios/postgres/04-mvcc/row-versions.ts:34	scenarios/postgres/04-mvcc/row-versions.ts#line[34]	ts-line	"    eq(b2!.balance, 100);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[34] (scenarios/postgres/04-mvcc/row-versions.ts:34); current scoped support applies
C01331	base	scenarios/postgres/04-mvcc/row-versions.ts:35	scenarios/postgres/04-mvcc/row-versions.ts#line[35]	ts-line	"    eq(b2!.xmax, v2!.xmin, \"the old version's xmax IS the updater's xid\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[35] (scenarios/postgres/04-mvcc/row-versions.ts:35); current scoped support applies
C01332	base	scenarios/postgres/04-mvcc/row-versions.ts:36	scenarios/postgres/04-mvcc/row-versions.ts#line[36]	ts-line	"    await B`COMMIT`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[36] (scenarios/postgres/04-mvcc/row-versions.ts:36); current scoped support applies
C01333	base	scenarios/postgres/04-mvcc/row-versions.ts:38	scenarios/postgres/04-mvcc/row-versions.ts#line[38]	ts-line	"    const [b3] = await B`SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[38] (scenarios/postgres/04-mvcc/row-versions.ts:38); current scoped support applies
C01334	base	scenarios/postgres/04-mvcc/row-versions.ts:39	scenarios/postgres/04-mvcc/row-versions.ts#line[39]	ts-line	"    eq(b3!.xmin, v2!.xmin, \"a fresh snapshot sees the new version\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/row-versions.ts#line[39]; scenarios/postgres/04-mvcc/row-versions.ts#line[41]; semantic decisions A1-A10 in audit report
C01335	base	scenarios/postgres/04-mvcc/row-versions.ts:41	scenarios/postgres/04-mvcc/row-versions.ts#line[41]	ts-line	"    t.note(\"pageinspect shows both versions physically on page 0 — the old one points at its successor.\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[41] (scenarios/postgres/04-mvcc/row-versions.ts:41); current scoped support applies
C01336	base	scenarios/postgres/04-mvcc/row-versions.ts:42	scenarios/postgres/04-mvcc/row-versions.ts#line[42]	ts-line	"    const heap = await A`"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[42] (scenarios/postgres/04-mvcc/row-versions.ts:42); current scoped support applies
C01337	base	scenarios/postgres/04-mvcc/row-versions.ts:43	scenarios/postgres/04-mvcc/row-versions.ts#line[43]	ts-line	"      SELECT lp, t_xmin, t_xmax, t_ctid"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[43] (scenarios/postgres/04-mvcc/row-versions.ts:43); current scoped support applies
C01338	base	scenarios/postgres/04-mvcc/row-versions.ts:44	scenarios/postgres/04-mvcc/row-versions.ts#line[44]	ts-line	"      FROM heap_page_items(get_raw_page('accounts', 0)) ORDER BY lp`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[44] (scenarios/postgres/04-mvcc/row-versions.ts:44); current scoped support applies
C01339	base	scenarios/postgres/04-mvcc/row-versions.ts:45	scenarios/postgres/04-mvcc/row-versions.ts#line[45]	ts-line	"    eq(heap, ["	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[45] (scenarios/postgres/04-mvcc/row-versions.ts:45); current scoped support applies
C01340	base	scenarios/postgres/04-mvcc/row-versions.ts:46	scenarios/postgres/04-mvcc/row-versions.ts#line[46]	ts-line	"      { lp: 1, t_xmin: v1!.xmin, t_xmax: v2!.xmin, t_ctid: \"(0,2)\" },"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[46] (scenarios/postgres/04-mvcc/row-versions.ts:46); current scoped support applies
C01341	base	scenarios/postgres/04-mvcc/row-versions.ts:47	scenarios/postgres/04-mvcc/row-versions.ts#line[47]	ts-line	"      { lp: 2, t_xmin: v2!.xmin, t_xmax: 0, t_ctid: \"(0,2)\" },"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[47] (scenarios/postgres/04-mvcc/row-versions.ts:47); current scoped support applies
C01342	base	scenarios/postgres/04-mvcc/row-versions.ts:48	scenarios/postgres/04-mvcc/row-versions.ts#line[48]	ts-line	"    ]);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[48] (scenarios/postgres/04-mvcc/row-versions.ts:48); current scoped support applies
C01343	base	scenarios/postgres/04-mvcc/row-versions.ts:49	scenarios/postgres/04-mvcc/row-versions.ts#line[49]	ts-line	"    // #endregion demo"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[49] (scenarios/postgres/04-mvcc/row-versions.ts:49); current scoped support applies
C01344	base	scenarios/postgres/04-mvcc/row-versions.ts:51	scenarios/postgres/04-mvcc/row-versions.ts#line[51]	ts-line	"    // #region delete"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[51] (scenarios/postgres/04-mvcc/row-versions.ts:51); current scoped support applies
C01345	base	scenarios/postgres/04-mvcc/row-versions.ts:52	scenarios/postgres/04-mvcc/row-versions.ts#line[52]	ts-line	"    t.note(\"DELETE doesn't erase anything either — it only stamps xmax on the current version.\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/row-versions.ts#line[45]; scenarios/postgres/04-mvcc/row-versions.ts#line[46]; scenarios/postgres/04-mvcc/row-versions.ts#line[47]; scenarios/postgres/04-mvcc/row-versions.ts#line[48]; scenarios/postgres/04-mvcc/row-versions.ts#line[49]; scenarios/postgres/04-mvcc/row-versions.ts#line[51]; scenarios/postgres/04-mvcc/row-versions.ts#line[52]; scenarios/postgres/04-mvcc/row-versions.ts#line[53]; scenarios/postgres/04-mvcc/row-versions.ts#line[54]; semantic decisions A1-A10 in audit report
C01346	base	scenarios/postgres/04-mvcc/row-versions.ts:53	scenarios/postgres/04-mvcc/row-versions.ts#line[53]	ts-line	"    const [d] = await A`DELETE FROM accounts WHERE id = 1 RETURNING xmin, xmax, ctid`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[55] (scenarios/postgres/04-mvcc/row-versions.ts:55); current scoped support applies
C01347	base	scenarios/postgres/04-mvcc/row-versions.ts:54	scenarios/postgres/04-mvcc/row-versions.ts#line[54]	ts-line	"    eq(d!.xmin, v2!.xmin);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[56] (scenarios/postgres/04-mvcc/row-versions.ts:56); current scoped support applies
C01348	base	scenarios/postgres/04-mvcc/row-versions.ts:55	scenarios/postgres/04-mvcc/row-versions.ts#line[55]	ts-line	"    eq(d!.xmax > 0, true, \"the deleter's xid, stamped at delete time\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[57] (scenarios/postgres/04-mvcc/row-versions.ts:57); current scoped support applies
C01349	base	scenarios/postgres/04-mvcc/row-versions.ts:57	scenarios/postgres/04-mvcc/row-versions.ts#line[57]	ts-line	"    const [live] = await A`SELECT count(*)::int AS live_rows FROM accounts`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[59] (scenarios/postgres/04-mvcc/row-versions.ts:59); current scoped support applies
C01350	base	scenarios/postgres/04-mvcc/row-versions.ts:58	scenarios/postgres/04-mvcc/row-versions.ts#line[58]	ts-line	"    eq(live!.live_rows, 0);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[60] (scenarios/postgres/04-mvcc/row-versions.ts:60); current scoped support applies
C01351	base	scenarios/postgres/04-mvcc/row-versions.ts:60	scenarios/postgres/04-mvcc/row-versions.ts#line[60]	ts-line	"    t.note(\"Zero rows for SELECT — yet both versions are still on disk, awaiting VACUUM.\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[62] (scenarios/postgres/04-mvcc/row-versions.ts:62); current scoped support applies
C01352	base	scenarios/postgres/04-mvcc/row-versions.ts:61	scenarios/postgres/04-mvcc/row-versions.ts#line[61]	ts-line	"    const afterDelete = await A`"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[63] (scenarios/postgres/04-mvcc/row-versions.ts:63); current scoped support applies
C01353	base	scenarios/postgres/04-mvcc/row-versions.ts:62	scenarios/postgres/04-mvcc/row-versions.ts#line[62]	ts-line	"      SELECT lp, t_xmin, t_xmax, t_ctid"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[64] (scenarios/postgres/04-mvcc/row-versions.ts:64); current scoped support applies
C01354	base	scenarios/postgres/04-mvcc/row-versions.ts:63	scenarios/postgres/04-mvcc/row-versions.ts#line[63]	ts-line	"      FROM heap_page_items(get_raw_page('accounts', 0)) ORDER BY lp`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[65] (scenarios/postgres/04-mvcc/row-versions.ts:65); current scoped support applies
C01355	base	scenarios/postgres/04-mvcc/row-versions.ts:64	scenarios/postgres/04-mvcc/row-versions.ts#line[64]	ts-line	"    eq(afterDelete, ["	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[66] (scenarios/postgres/04-mvcc/row-versions.ts:66); current scoped support applies
C01356	base	scenarios/postgres/04-mvcc/row-versions.ts:65	scenarios/postgres/04-mvcc/row-versions.ts#line[65]	ts-line	"      { lp: 1, t_xmin: v1!.xmin, t_xmax: v2!.xmin, t_ctid: \"(0,2)\" },"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[67] (scenarios/postgres/04-mvcc/row-versions.ts:67); current scoped support applies
C01357	base	scenarios/postgres/04-mvcc/row-versions.ts:66	scenarios/postgres/04-mvcc/row-versions.ts#line[66]	ts-line	"      { lp: 2, t_xmin: v2!.xmin, t_xmax: d!.xmax, t_ctid: \"(0,2)\" },"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[68] (scenarios/postgres/04-mvcc/row-versions.ts:68); current scoped support applies
C01358	base	scenarios/postgres/04-mvcc/row-versions.ts:67	scenarios/postgres/04-mvcc/row-versions.ts#line[67]	ts-line	"    ]);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[69] (scenarios/postgres/04-mvcc/row-versions.ts:69); current scoped support applies
C01359	base	scenarios/postgres/04-mvcc/row-versions.ts:68	scenarios/postgres/04-mvcc/row-versions.ts#line[68]	ts-line	"    // #endregion delete"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[70] (scenarios/postgres/04-mvcc/row-versions.ts:70); current scoped support applies
C01360	base	scenarios/postgres/04-mvcc/row-versions.ts:69	scenarios/postgres/04-mvcc/row-versions.ts#line[69]	ts-line	"  },"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[71] (scenarios/postgres/04-mvcc/row-versions.ts:71); current scoped support applies
C01361	base	scenarios/postgres/04-mvcc/row-versions.ts:70	scenarios/postgres/04-mvcc/row-versions.ts#line[70]	ts-line	"});"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/row-versions.ts#line[72] (scenarios/postgres/04-mvcc/row-versions.ts:72); current scoped support applies
C01362	current	scenarios/postgres/04-mvcc/row-versions.ts:1	scenarios/postgres/04-mvcc/row-versions.ts#line[1]	ts-line	"import { eq, scenario } from \"../../../harness/scenario\";"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01363	current	scenarios/postgres/04-mvcc/row-versions.ts:3	scenarios/postgres/04-mvcc/row-versions.ts#line[3]	ts-line	"export default scenario({"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01364	current	scenarios/postgres/04-mvcc/row-versions.ts:4	scenarios/postgres/04-mvcc/row-versions.ts#line[4]	ts-line	"  title: \"Row versions: xmin, xmax, ctid\","	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01365	current	scenarios/postgres/04-mvcc/row-versions.ts:5	scenarios/postgres/04-mvcc/row-versions.ts#line[5]	ts-line	"  claim:"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01366	current	scenarios/postgres/04-mvcc/row-versions.ts:6	scenarios/postgres/04-mvcc/row-versions.ts#line[6]	ts-line	"    \"In this setup UPDATE creates a new tuple at (0,2), while B's old Repeatable Read snapshot still reads the original balance at (0,1). After DELETE there are zero live rows but both tuple versions remain in the inspected page. This is not a promise of permanent physical retention.\","	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01367	current	scenarios/postgres/04-mvcc/row-versions.ts:7	scenarios/postgres/04-mvcc/row-versions.ts#line[7]	ts-line	"  setup: `"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01368	current	scenarios/postgres/04-mvcc/row-versions.ts:8	scenarios/postgres/04-mvcc/row-versions.ts#line[8]	ts-line	"    CREATE EXTENSION pageinspect;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01369	current	scenarios/postgres/04-mvcc/row-versions.ts:9	scenarios/postgres/04-mvcc/row-versions.ts#line[9]	ts-line	"    CREATE TABLE accounts (id int PRIMARY KEY, balance int NOT NULL);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01370	current	scenarios/postgres/04-mvcc/row-versions.ts:10	scenarios/postgres/04-mvcc/row-versions.ts#line[10]	ts-line	"    INSERT INTO accounts VALUES (1, 100);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01371	current	scenarios/postgres/04-mvcc/row-versions.ts:11	scenarios/postgres/04-mvcc/row-versions.ts#line[11]	ts-line	"  `,"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01372	current	scenarios/postgres/04-mvcc/row-versions.ts:12	scenarios/postgres/04-mvcc/row-versions.ts#line[12]	ts-line	"  sessions: [\"A\", \"B\"],"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01373	current	scenarios/postgres/04-mvcc/row-versions.ts:14	scenarios/postgres/04-mvcc/row-versions.ts#line[14]	ts-line	"  async run({ A, B }, t) {"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01374	current	scenarios/postgres/04-mvcc/row-versions.ts:15	scenarios/postgres/04-mvcc/row-versions.ts#line[15]	ts-line	"    // #region demo"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01375	current	scenarios/postgres/04-mvcc/row-versions.ts:16	scenarios/postgres/04-mvcc/row-versions.ts#line[16]	ts-line	"    t.note("	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01376	current	scenarios/postgres/04-mvcc/row-versions.ts:17	scenarios/postgres/04-mvcc/row-versions.ts#line[17]	ts-line	"      \"Inspect this tuple version: xmin identifies its inserting transaction, ctid its physical location. xmax can record deletion or row locking; this schedule follows the update/delete case.\","	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01377	current	scenarios/postgres/04-mvcc/row-versions.ts:18	scenarios/postgres/04-mvcc/row-versions.ts#line[18]	ts-line	"    );"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01378	current	scenarios/postgres/04-mvcc/row-versions.ts:19	scenarios/postgres/04-mvcc/row-versions.ts#line[19]	ts-line	"    const [v1] = await A`SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01379	current	scenarios/postgres/04-mvcc/row-versions.ts:20	scenarios/postgres/04-mvcc/row-versions.ts#line[20]	ts-line	"    eq([v1!.xmax, v1!.ctid, v1!.balance], [0, \"(0,1)\", 100]);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01380	current	scenarios/postgres/04-mvcc/row-versions.ts:22	scenarios/postgres/04-mvcc/row-versions.ts#line[22]	ts-line	"    await B`BEGIN ISOLATION LEVEL REPEATABLE READ`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01381	current	scenarios/postgres/04-mvcc/row-versions.ts:23	scenarios/postgres/04-mvcc/row-versions.ts#line[23]	ts-line	"    const [b1] = await B`SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01382	current	scenarios/postgres/04-mvcc/row-versions.ts:24	scenarios/postgres/04-mvcc/row-versions.ts#line[24]	ts-line	"    eq([b1!.xmin, b1!.xmax, b1!.ctid, b1!.balance], [v1!.xmin, 0, \"(0,1)\", 100]);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01383	current	scenarios/postgres/04-mvcc/row-versions.ts:26	scenarios/postgres/04-mvcc/row-versions.ts#line[26]	ts-line	"    t.note(\"A's UPDATE creates a new tuple version and changes the old version's xmax and successor pointer.\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01384	current	scenarios/postgres/04-mvcc/row-versions.ts:27	scenarios/postgres/04-mvcc/row-versions.ts#line[27]	ts-line	"    const [v2] = await A`"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01385	current	scenarios/postgres/04-mvcc/row-versions.ts:28	scenarios/postgres/04-mvcc/row-versions.ts#line[28]	ts-line	"      UPDATE accounts SET balance = 200 WHERE id = 1"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01386	current	scenarios/postgres/04-mvcc/row-versions.ts:29	scenarios/postgres/04-mvcc/row-versions.ts#line[29]	ts-line	"      RETURNING xmin, xmax, ctid, balance`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01387	current	scenarios/postgres/04-mvcc/row-versions.ts:30	scenarios/postgres/04-mvcc/row-versions.ts#line[30]	ts-line	"    eq([v2!.ctid, v2!.balance], [\"(0,2)\", 200]);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01388	current	scenarios/postgres/04-mvcc/row-versions.ts:32	scenarios/postgres/04-mvcc/row-versions.ts#line[32]	ts-line	"    t.note(\"B still reads the old version — but its xmax is no longer 0: A's xid is stamped on it.\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01389	current	scenarios/postgres/04-mvcc/row-versions.ts:33	scenarios/postgres/04-mvcc/row-versions.ts#line[33]	ts-line	"    const [b2] = await B`SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01390	current	scenarios/postgres/04-mvcc/row-versions.ts:34	scenarios/postgres/04-mvcc/row-versions.ts#line[34]	ts-line	"    eq(b2!.balance, 100);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01391	current	scenarios/postgres/04-mvcc/row-versions.ts:35	scenarios/postgres/04-mvcc/row-versions.ts#line[35]	ts-line	"    eq(b2!.xmax, v2!.xmin, \"the old version's xmax IS the updater's xid\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01392	current	scenarios/postgres/04-mvcc/row-versions.ts:36	scenarios/postgres/04-mvcc/row-versions.ts#line[36]	ts-line	"    await B`COMMIT`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01393	current	scenarios/postgres/04-mvcc/row-versions.ts:38	scenarios/postgres/04-mvcc/row-versions.ts#line[38]	ts-line	"    const [b3] = await B`SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01394	current	scenarios/postgres/04-mvcc/row-versions.ts:39	scenarios/postgres/04-mvcc/row-versions.ts#line[39]	ts-line	"    eq([b3!.xmin, b3!.ctid, b3!.balance], [v2!.xmin, \"(0,2)\", 200], \"a fresh snapshot sees the new version\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01395	current	scenarios/postgres/04-mvcc/row-versions.ts:41	scenarios/postgres/04-mvcc/row-versions.ts#line[41]	ts-line	"    t.note(\"pageinspect shows both versions physically on page 0 — the old one points at its successor.\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01396	current	scenarios/postgres/04-mvcc/row-versions.ts:42	scenarios/postgres/04-mvcc/row-versions.ts#line[42]	ts-line	"    const heap = await A`"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01397	current	scenarios/postgres/04-mvcc/row-versions.ts:43	scenarios/postgres/04-mvcc/row-versions.ts#line[43]	ts-line	"      SELECT lp, t_xmin, t_xmax, t_ctid"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01398	current	scenarios/postgres/04-mvcc/row-versions.ts:44	scenarios/postgres/04-mvcc/row-versions.ts#line[44]	ts-line	"      FROM heap_page_items(get_raw_page('accounts', 0)) ORDER BY lp`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01399	current	scenarios/postgres/04-mvcc/row-versions.ts:45	scenarios/postgres/04-mvcc/row-versions.ts#line[45]	ts-line	"    eq(heap, ["	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01400	current	scenarios/postgres/04-mvcc/row-versions.ts:46	scenarios/postgres/04-mvcc/row-versions.ts#line[46]	ts-line	"      { lp: 1, t_xmin: v1!.xmin, t_xmax: v2!.xmin, t_ctid: \"(0,2)\" },"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01401	current	scenarios/postgres/04-mvcc/row-versions.ts:47	scenarios/postgres/04-mvcc/row-versions.ts#line[47]	ts-line	"      { lp: 2, t_xmin: v2!.xmin, t_xmax: 0, t_ctid: \"(0,2)\" },"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01402	current	scenarios/postgres/04-mvcc/row-versions.ts:48	scenarios/postgres/04-mvcc/row-versions.ts#line[48]	ts-line	"    ]);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01403	current	scenarios/postgres/04-mvcc/row-versions.ts:49	scenarios/postgres/04-mvcc/row-versions.ts#line[49]	ts-line	"    // #endregion demo"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01404	current	scenarios/postgres/04-mvcc/row-versions.ts:51	scenarios/postgres/04-mvcc/row-versions.ts#line[51]	ts-line	"    // #region delete"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01405	current	scenarios/postgres/04-mvcc/row-versions.ts:52	scenarios/postgres/04-mvcc/row-versions.ts#line[52]	ts-line	"    t.note("	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01406	current	scenarios/postgres/04-mvcc/row-versions.ts:53	scenarios/postgres/04-mvcc/row-versions.ts#line[53]	ts-line	"      \"DELETE marks the current version deleted; the following page inspection checks that its tuple body remains here.\","	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01407	current	scenarios/postgres/04-mvcc/row-versions.ts:54	scenarios/postgres/04-mvcc/row-versions.ts#line[54]	ts-line	"    );"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01408	current	scenarios/postgres/04-mvcc/row-versions.ts:55	scenarios/postgres/04-mvcc/row-versions.ts#line[55]	ts-line	"    const [d] = await A`DELETE FROM accounts WHERE id = 1 RETURNING xmin, xmax, ctid`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01409	current	scenarios/postgres/04-mvcc/row-versions.ts:56	scenarios/postgres/04-mvcc/row-versions.ts#line[56]	ts-line	"    eq(d!.xmin, v2!.xmin);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01410	current	scenarios/postgres/04-mvcc/row-versions.ts:57	scenarios/postgres/04-mvcc/row-versions.ts#line[57]	ts-line	"    eq(d!.xmax > 0, true, \"the deleter's xid, stamped at delete time\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01411	current	scenarios/postgres/04-mvcc/row-versions.ts:59	scenarios/postgres/04-mvcc/row-versions.ts#line[59]	ts-line	"    const [live] = await A`SELECT count(*)::int AS live_rows FROM accounts`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01412	current	scenarios/postgres/04-mvcc/row-versions.ts:60	scenarios/postgres/04-mvcc/row-versions.ts#line[60]	ts-line	"    eq(live!.live_rows, 0);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01413	current	scenarios/postgres/04-mvcc/row-versions.ts:62	scenarios/postgres/04-mvcc/row-versions.ts#line[62]	ts-line	"    t.note(\"Zero rows for SELECT — yet both versions are still on disk, awaiting VACUUM.\");"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01414	current	scenarios/postgres/04-mvcc/row-versions.ts:63	scenarios/postgres/04-mvcc/row-versions.ts#line[63]	ts-line	"    const afterDelete = await A`"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01415	current	scenarios/postgres/04-mvcc/row-versions.ts:64	scenarios/postgres/04-mvcc/row-versions.ts#line[64]	ts-line	"      SELECT lp, t_xmin, t_xmax, t_ctid"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01416	current	scenarios/postgres/04-mvcc/row-versions.ts:65	scenarios/postgres/04-mvcc/row-versions.ts#line[65]	ts-line	"      FROM heap_page_items(get_raw_page('accounts', 0)) ORDER BY lp`;"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01417	current	scenarios/postgres/04-mvcc/row-versions.ts:66	scenarios/postgres/04-mvcc/row-versions.ts#line[66]	ts-line	"    eq(afterDelete, ["	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01418	current	scenarios/postgres/04-mvcc/row-versions.ts:67	scenarios/postgres/04-mvcc/row-versions.ts#line[67]	ts-line	"      { lp: 1, t_xmin: v1!.xmin, t_xmax: v2!.xmin, t_ctid: \"(0,2)\" },"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01419	current	scenarios/postgres/04-mvcc/row-versions.ts:68	scenarios/postgres/04-mvcc/row-versions.ts#line[68]	ts-line	"      { lp: 2, t_xmin: v2!.xmin, t_xmax: d!.xmax, t_ctid: \"(0,2)\" },"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01420	current	scenarios/postgres/04-mvcc/row-versions.ts:69	scenarios/postgres/04-mvcc/row-versions.ts#line[69]	ts-line	"    ]);"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01421	current	scenarios/postgres/04-mvcc/row-versions.ts:70	scenarios/postgres/04-mvcc/row-versions.ts#line[70]	ts-line	"    // #endregion delete"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01422	current	scenarios/postgres/04-mvcc/row-versions.ts:71	scenarios/postgres/04-mvcc/row-versions.ts#line[71]	ts-line	"  },"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01423	current	scenarios/postgres/04-mvcc/row-versions.ts:72	scenarios/postgres/04-mvcc/row-versions.ts#line[72]	ts-line	"});"	P27	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01424	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:1	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[1]	ts-line	"import { eq, scenario } from \"../../../harness/scenario\";"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[1] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:1); current scoped support applies
C01425	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:3	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[3]	ts-line	"export default scenario({"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[3] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:3); current scoped support applies
C01426	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:4	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[4]	ts-line	"  title: \"Snapshots under the hood: xmin, xmax, xip\","	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[4] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:4); current scoped support applies
C01427	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:5	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[5]	ts-line	"  claim:"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[5] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:5); current scoped support applies
C01428	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:6	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[6]	ts-line	"    \"A snapshot is three numbers — xmin, xmax, and the in-progress list — and visibility is pure arithmetic on them: committed before xmax and not in xip = visible. Commit order doesn't matter; the snapshot already decided.\","	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[1]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[3]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[4]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[5]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[6]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[7]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[8]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[9]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[10]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[11]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[13]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[14]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[15]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[16]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[17]; semantic decisions A1-A10 in audit report
C01429	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:7	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[7]	ts-line	"  setup: `"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[7] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:7); current scoped support applies
C01430	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:8	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[8]	ts-line	"    CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[8] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:8); current scoped support applies
C01431	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:9	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[9]	ts-line	"    INSERT INTO accounts VALUES (1, 'alice', 100), (2, 'bob', 100);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[9] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:9); current scoped support applies
C01432	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:10	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[10]	ts-line	"  `,"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[10] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:10); current scoped support applies
C01433	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:11	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[11]	ts-line	"  sessions: [\"A\", \"B\", \"C\"],"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[11] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:11); current scoped support applies
C01434	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:13	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[13]	ts-line	"  async run({ A, B, C }, t) {"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[13] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:13); current scoped support applies
C01435	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:14	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[14]	ts-line	"    // #region demo"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[14] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:14); current scoped support applies
C01436	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:15	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[15]	ts-line	"    t.note(\"Transaction ids are handed out lazily — a transaction that only reads never gets one.\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[1]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[3]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[4]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[5]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[6]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[7]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[8]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[9]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[10]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[11]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[13]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[14]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[15]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[16]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[17]; semantic decisions A1-A10 in audit report
C01437	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:16	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[16]	ts-line	"    await A`BEGIN`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[18] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:18); current scoped support applies
C01438	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:17	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[17]	ts-line	"    await A`SELECT balance FROM accounts WHERE id = 1`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[19] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:19); current scoped support applies
C01439	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:18	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[18]	ts-line	"    const [before] = await A`SELECT pg_current_xact_id_if_assigned() AS xid`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[20] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:20); current scoped support applies
C01440	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:19	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[19]	ts-line	"    eq(before!.xid, null);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[21] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:21); current scoped support applies
C01441	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:21	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[21]	ts-line	"    await A`UPDATE accounts SET balance = 150 WHERE id = 1`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[23] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:23); current scoped support applies
C01442	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:22	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[22]	ts-line	"    const [after] = await A`SELECT pg_current_xact_id_if_assigned() AS xid`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[24] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:24); current scoped support applies
C01443	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:23	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[23]	ts-line	"    const aXid = after!.xid as string; // A's xid — A stays open"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[25] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:25); current scoped support applies
C01444	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:24	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[24]	ts-line	"    eq(aXid !== null, true);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[26] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:26); current scoped support applies
C01445	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:26	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[26]	ts-line	"    t.note(\"B grabs the next xid and commits immediately. A is still in progress.\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[28] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:28); current scoped support applies
C01446	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:27	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[27]	ts-line	"    const [bRow] = await B`UPDATE accounts SET balance = 200 WHERE id = 2 RETURNING xmin, balance`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[29] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:29); current scoped support applies
C01447	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:28	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[28]	ts-line	"    const bXid = Number(bRow!.xmin);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[30] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:30); current scoped support applies
C01448	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:30	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[30]	ts-line	"    t.note(\"C opens a transaction and inspects its own snapshot: the three numbers that decide all visibility.\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[30]; scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[32]; semantic decisions A1-A10 in audit report
C01449	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:31	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[31]	ts-line	"    await C`BEGIN ISOLATION LEVEL REPEATABLE READ`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[33] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:33); current scoped support applies
C01450	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:32	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[32]	ts-line	"    const [snap] = await C`"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[34] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:34); current scoped support applies
C01451	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:33	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[33]	ts-line	"      SELECT pg_snapshot_xmin(pg_current_snapshot()) AS xmin,"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[35] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:35); current scoped support applies
C01452	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:34	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[34]	ts-line	"             pg_snapshot_xmax(pg_current_snapshot()) AS xmax`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[36] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:36); current scoped support applies
C01453	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:35	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[35]	ts-line	"    eq(Number(snap!.xmin), Number(aXid), \"xmin = oldest still-running xid: that's A\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[37] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:37); current scoped support applies
C01454	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:36	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[36]	ts-line	"    eq(Number(snap!.xmax), bXid + 1, \"xmax = one past the highest COMPLETED xid: that's B + 1\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[38] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:38); current scoped support applies
C01455	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:38	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[38]	ts-line	"    t.note("	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[40] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:40); current scoped support applies
C01456	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:39	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[39]	ts-line	"      \"xip = the xids that were in progress at snapshot time. A is on the list — so A is invisible even after it commits.\","	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[41] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:41); current scoped support applies
C01457	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:40	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[40]	ts-line	"    );"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[42] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:42); current scoped support applies
C01458	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:41	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[41]	ts-line	"    const xip = await C`SELECT pg_snapshot_xip(pg_current_snapshot()) AS xid`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[43] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:43); current scoped support applies
C01459	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:42	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[42]	ts-line	"    eq(xip, [{ xid: aXid }]);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[44] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:44); current scoped support applies
C01460	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:44	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[44]	ts-line	"    t.note(\"The arithmetic in action: B (committed, below xmax) is visible; A (in xip) is not.\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[46] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:46); current scoped support applies
C01461	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:45	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[45]	ts-line	"    const seen1 = await C`SELECT id, owner, balance FROM accounts ORDER BY id`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[47] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:47); current scoped support applies
C01462	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:46	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[46]	ts-line	"    eq(seen1, ["	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[48] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:48); current scoped support applies
C01463	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:47	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[47]	ts-line	"      { id: 1, owner: \"alice\", balance: 100 },"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[49] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:49); current scoped support applies
C01464	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:48	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[48]	ts-line	"      { id: 2, owner: \"bob\", balance: 200 },"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[50] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:50); current scoped support applies
C01465	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:49	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[49]	ts-line	"    ]);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[51] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:51); current scoped support applies
C01466	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:51	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[51]	ts-line	"    await A`COMMIT`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[53] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:53); current scoped support applies
C01467	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:52	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[52]	ts-line	"    t.note(\"A has now committed — but C's snapshot already decided: still invisible.\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[54] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:54); current scoped support applies
C01468	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:53	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[53]	ts-line	"    const seen2 = await C`SELECT id, owner, balance FROM accounts ORDER BY id`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[55] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:55); current scoped support applies
C01469	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:54	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[54]	ts-line	"    eq(seen2, seen1);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[56] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:56); current scoped support applies
C01470	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:56	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[56]	ts-line	"    await C`COMMIT`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[58] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:58); current scoped support applies
C01471	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:57	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[57]	ts-line	"    t.note(\"Only a NEW snapshot changes the verdict.\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[59]; semantic decisions A1-A10 in audit report
C01472	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:58	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[58]	ts-line	"    const seen3 = await C`SELECT id, owner, balance FROM accounts ORDER BY id`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[60] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:60); current scoped support applies
C01473	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:59	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[59]	ts-line	"    eq(seen3, ["	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[61] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:61); current scoped support applies
C01474	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:60	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[60]	ts-line	"      { id: 1, owner: \"alice\", balance: 150 },"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[62] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:62); current scoped support applies
C01475	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:61	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[61]	ts-line	"      { id: 2, owner: \"bob\", balance: 200 },"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[63] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:63); current scoped support applies
C01476	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:62	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[62]	ts-line	"    ]);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[64] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:64); current scoped support applies
C01477	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:63	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[63]	ts-line	"    // #endregion demo"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[65] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:65); current scoped support applies
C01478	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:64	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[64]	ts-line	"  },"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[66] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:66); current scoped support applies
C01479	base	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:65	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[65]	ts-line	"});"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Retained at scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[67] (scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:67); current scoped support applies
C01480	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:1	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[1]	ts-line	"import { eq, scenario } from \"../../../harness/scenario\";"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01481	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:3	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[3]	ts-line	"export default scenario({"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01482	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:4	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[4]	ts-line	"  title: \"Snapshots under the hood: xmin, xmax, xip\","	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01483	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:5	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[5]	ts-line	"  claim:"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01484	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:6	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[6]	ts-line	"    \"C's Repeatable Read snapshot records A as in progress and B as completed. C reads A's old value and B's committed value, repeats that view after A commits, then sees A's new value in a fresh transaction. The exposed snapshot components are not the complete tuple-visibility algorithm.\","	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01485	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:7	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[7]	ts-line	"  setup: `"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01486	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:8	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[8]	ts-line	"    CREATE TABLE accounts (id int PRIMARY KEY, owner text NOT NULL, balance int NOT NULL);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01487	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:9	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[9]	ts-line	"    INSERT INTO accounts VALUES (1, 'alice', 100), (2, 'bob', 100);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01488	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:10	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[10]	ts-line	"  `,"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01489	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:11	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[11]	ts-line	"  sessions: [\"A\", \"B\", \"C\"],"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01490	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:13	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[13]	ts-line	"  async run({ A, B, C }, t) {"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01491	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:14	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[14]	ts-line	"    // #region demo"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01492	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:15	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[15]	ts-line	"    t.note("	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01493	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:16	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[16]	ts-line	"      \"A's initial ordinary read does not assign an xid; pg_current_xact_id() could assign one without a table write.\","	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01494	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:17	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[17]	ts-line	"    );"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01495	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:18	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[18]	ts-line	"    await A`BEGIN`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01496	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:19	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[19]	ts-line	"    await A`SELECT balance FROM accounts WHERE id = 1`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01497	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:20	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[20]	ts-line	"    const [before] = await A`SELECT pg_current_xact_id_if_assigned() AS xid`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01498	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:21	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[21]	ts-line	"    eq(before!.xid, null);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01499	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:23	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[23]	ts-line	"    await A`UPDATE accounts SET balance = 150 WHERE id = 1`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01500	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:24	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[24]	ts-line	"    const [after] = await A`SELECT pg_current_xact_id_if_assigned() AS xid`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01501	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:25	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[25]	ts-line	"    const aXid = after!.xid as string; // A's xid — A stays open"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01502	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:26	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[26]	ts-line	"    eq(aXid !== null, true);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01503	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:28	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[28]	ts-line	"    t.note(\"B grabs the next xid and commits immediately. A is still in progress.\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01504	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:29	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[29]	ts-line	"    const [bRow] = await B`UPDATE accounts SET balance = 200 WHERE id = 2 RETURNING xmin, balance`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01505	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:30	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[30]	ts-line	"    const bXid = Number(bRow!.xmin);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01506	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:32	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[32]	ts-line	"    t.note(\"C inspects its retained snapshot bounds; commit status and tuple metadata also matter for visibility.\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01507	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:33	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[33]	ts-line	"    await C`BEGIN ISOLATION LEVEL REPEATABLE READ`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01508	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:34	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[34]	ts-line	"    const [snap] = await C`"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01509	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:35	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[35]	ts-line	"      SELECT pg_snapshot_xmin(pg_current_snapshot()) AS xmin,"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01510	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:36	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[36]	ts-line	"             pg_snapshot_xmax(pg_current_snapshot()) AS xmax`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01511	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:37	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[37]	ts-line	"    eq(Number(snap!.xmin), Number(aXid), \"xmin = oldest still-running xid: that's A\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01512	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:38	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[38]	ts-line	"    eq(Number(snap!.xmax), bXid + 1, \"xmax = one past the highest COMPLETED xid: that's B + 1\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01513	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:40	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[40]	ts-line	"    t.note("	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01514	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:41	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[41]	ts-line	"      \"xip = the xids that were in progress at snapshot time. A is on the list — so A is invisible even after it commits.\","	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01515	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:42	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[42]	ts-line	"    );"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01516	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:43	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[43]	ts-line	"    const xip = await C`SELECT pg_snapshot_xip(pg_current_snapshot()) AS xid`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01517	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:44	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[44]	ts-line	"    eq(xip, [{ xid: aXid }]);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01518	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:46	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[46]	ts-line	"    t.note(\"The arithmetic in action: B (committed, below xmax) is visible; A (in xip) is not.\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01519	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:47	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[47]	ts-line	"    const seen1 = await C`SELECT id, owner, balance FROM accounts ORDER BY id`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01520	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:48	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[48]	ts-line	"    eq(seen1, ["	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01521	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:49	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[49]	ts-line	"      { id: 1, owner: \"alice\", balance: 100 },"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01522	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:50	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[50]	ts-line	"      { id: 2, owner: \"bob\", balance: 200 },"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01523	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:51	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[51]	ts-line	"    ]);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01524	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:53	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[53]	ts-line	"    await A`COMMIT`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"explicit active","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01525	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:54	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[54]	ts-line	"    t.note(\"A has now committed — but C's snapshot already decided: still invisible.\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01526	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:55	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[55]	ts-line	"    const seen2 = await C`SELECT id, owner, balance FROM accounts ORDER BY id`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01527	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:56	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[56]	ts-line	"    eq(seen2, seen1);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01528	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:58	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[58]	ts-line	"    await C`COMMIT`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"explicit active","level":"REPEATABLE READ","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01529	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:59	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[59]	ts-line	"    t.note(\"C's fresh transaction now reads A's committed value; own-write visibility is a separate rule.\");"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01530	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:60	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[60]	ts-line	"    const seen3 = await C`SELECT id, owner, balance FROM accounts ORDER BY id`;"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"B":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"},"C":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01531	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:61	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[61]	ts-line	"    eq(seen3, ["	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained	Resolved: scoped current D: assertion on returned rows/values or inspected page fields; exact expression and ordered SQL retained
C01532	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:62	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[62]	ts-line	"      { id: 1, owner: \"alice\", balance: 150 },"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01533	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:63	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[63]	ts-line	"      { id: 2, owner: \"bob\", balance: 200 },"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01534	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:64	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[64]	ts-line	"    ]);"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01535	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:65	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[65]	ts-line	"    // #endregion demo"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01536	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:66	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[66]	ts-line	"  },"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01537	current	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts:67	scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts#line[67]	ts-line	"});"	P28	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; B={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}; C={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}		Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial	Resolved: scoped current Authored code/note; ordered SQL and assertions in registry distinguish observed values from contracts; comments and structure are editorial
C01538	base	scenarios/postgres/04-mvcc/vacuum.yaml:1	scenarios/postgres/04-mvcc/vacuum.yaml#title	yaml-scalar	"VACUUM: reclaim for reuse, not for the OS"	P29	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/vacuum.yaml#title; semantic decisions A1-A10 in audit report
C01539	base	scenarios/postgres/04-mvcc/vacuum.yaml:2	scenarios/postgres/04-mvcc/vacuum.yaml#claim	yaml-scalar	"VACUUM turns dead tuples into reusable free space inside the table's file — new rows land in the freed slots — but it does not shrink the file; only VACUUM FULL rewrites the table to its minimal size."	P29	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/vacuum.yaml#claim; semantic decisions A1-A10 in audit report
C01540	base	scenarios/postgres/04-mvcc/vacuum.yaml:6	scenarios/postgres/04-mvcc/vacuum.yaml#setup	yaml-scalar	"CREATE EXTENSION pageinspect;\nCREATE TABLE counters (id int PRIMARY KEY, n int NOT NULL);\nINSERT INTO counters VALUES (1, 0);\nCREATE TABLE bloat (id int PRIMARY KEY, filler text NOT NULL);\nINSERT INTO bloat SELECT g, 'x' FROM generate_series(1, 1000) g;\n"	P29	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#setup (scenarios/postgres/04-mvcc/vacuum.yaml:7); current scoped support applies
C01541	base	scenarios/postgres/04-mvcc/vacuum.yaml:12	scenarios/postgres/04-mvcc/vacuum.yaml#sessions[0]	yaml-scalar	"A"	P29	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#sessions[0] (scenarios/postgres/04-mvcc/vacuum.yaml:13); current scoped support applies
C01542	base	scenarios/postgres/04-mvcc/vacuum.yaml:14	scenarios/postgres/04-mvcc/vacuum.yaml#steps[0].note	yaml-scalar	"Three updates leave three dead tuples on the page (the bloat lesson showed the chain)."	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[0].note (scenarios/postgres/04-mvcc/vacuum.yaml:15); current scoped support applies
C01543	base	scenarios/postgres/04-mvcc/vacuum.yaml:15	scenarios/postgres/04-mvcc/vacuum.yaml#steps[1].A	yaml-scalar	"UPDATE counters SET n = 1 WHERE id = 1"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[1].A (scenarios/postgres/04-mvcc/vacuum.yaml:16); current scoped support applies
C01544	base	scenarios/postgres/04-mvcc/vacuum.yaml:16	scenarios/postgres/04-mvcc/vacuum.yaml#steps[2].A	yaml-scalar	"UPDATE counters SET n = 2 WHERE id = 1"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[2].A (scenarios/postgres/04-mvcc/vacuum.yaml:17); current scoped support applies
C01545	base	scenarios/postgres/04-mvcc/vacuum.yaml:17	scenarios/postgres/04-mvcc/vacuum.yaml#steps[3].A	yaml-scalar	"UPDATE counters SET n = 3 WHERE id = 1 RETURNING xmin, n"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[3].A (scenarios/postgres/04-mvcc/vacuum.yaml:18); current scoped support applies
C01546	base	scenarios/postgres/04-mvcc/vacuum.yaml:18	scenarios/postgres/04-mvcc/vacuum.yaml#steps[3].capture	yaml-scalar	"last"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[3].capture (scenarios/postgres/04-mvcc/vacuum.yaml:19); current scoped support applies
C01547	base	scenarios/postgres/04-mvcc/vacuum.yaml:20	scenarios/postgres/04-mvcc/vacuum.yaml#steps[4].A	yaml-scalar	"VACUUM counters"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[4].A (scenarios/postgres/04-mvcc/vacuum.yaml:21); current scoped support applies
C01548	base	scenarios/postgres/04-mvcc/vacuum.yaml:21	scenarios/postgres/04-mvcc/vacuum.yaml#steps[5].note	yaml-scalar	"After VACUUM: slot 1 is a redirect to the live version, slots 2–3 are unused (reusable), only slot 4 still holds a tuple. The corpses are gone."	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[5].note (scenarios/postgres/04-mvcc/vacuum.yaml:22); current scoped support applies
C01549	base	scenarios/postgres/04-mvcc/vacuum.yaml:24	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].A	yaml-scalar	"SELECT lp, lp_flags, t_xmin, t_xmax, t_ctid\nFROM heap_page_items(get_raw_page('counters', 0)) ORDER BY lp\n"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].A (scenarios/postgres/04-mvcc/vacuum.yaml:25); current scoped support applies
C01550	base	scenarios/postgres/04-mvcc/vacuum.yaml:28	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].lp	yaml-scalar	"1"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].lp (scenarios/postgres/04-mvcc/vacuum.yaml:29); current scoped support applies
C01551	base	scenarios/postgres/04-mvcc/vacuum.yaml:28	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].lp_flags	yaml-scalar	"2"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].lp_flags (scenarios/postgres/04-mvcc/vacuum.yaml:29); current scoped support applies
C01552	base	scenarios/postgres/04-mvcc/vacuum.yaml:28	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].t_xmin	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].t_xmin (scenarios/postgres/04-mvcc/vacuum.yaml:29); current scoped support applies
C01553	base	scenarios/postgres/04-mvcc/vacuum.yaml:28	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].t_xmax	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].t_xmax (scenarios/postgres/04-mvcc/vacuum.yaml:29); current scoped support applies
C01554	base	scenarios/postgres/04-mvcc/vacuum.yaml:28	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].t_ctid	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].t_ctid (scenarios/postgres/04-mvcc/vacuum.yaml:29); current scoped support applies
C01555	base	scenarios/postgres/04-mvcc/vacuum.yaml:29	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].lp	yaml-scalar	"2"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].lp (scenarios/postgres/04-mvcc/vacuum.yaml:30); current scoped support applies
C01556	base	scenarios/postgres/04-mvcc/vacuum.yaml:29	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].lp_flags	yaml-scalar	"0"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].lp_flags (scenarios/postgres/04-mvcc/vacuum.yaml:30); current scoped support applies
C01557	base	scenarios/postgres/04-mvcc/vacuum.yaml:29	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].t_xmin	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].t_xmin (scenarios/postgres/04-mvcc/vacuum.yaml:30); current scoped support applies
C01558	base	scenarios/postgres/04-mvcc/vacuum.yaml:29	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].t_xmax	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].t_xmax (scenarios/postgres/04-mvcc/vacuum.yaml:30); current scoped support applies
C01559	base	scenarios/postgres/04-mvcc/vacuum.yaml:29	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].t_ctid	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].t_ctid (scenarios/postgres/04-mvcc/vacuum.yaml:30); current scoped support applies
C01560	base	scenarios/postgres/04-mvcc/vacuum.yaml:30	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].lp	yaml-scalar	"3"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].lp (scenarios/postgres/04-mvcc/vacuum.yaml:31); current scoped support applies
C01561	base	scenarios/postgres/04-mvcc/vacuum.yaml:30	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].lp_flags	yaml-scalar	"0"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].lp_flags (scenarios/postgres/04-mvcc/vacuum.yaml:31); current scoped support applies
C01562	base	scenarios/postgres/04-mvcc/vacuum.yaml:30	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].t_xmin	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].t_xmin (scenarios/postgres/04-mvcc/vacuum.yaml:31); current scoped support applies
C01563	base	scenarios/postgres/04-mvcc/vacuum.yaml:30	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].t_xmax	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].t_xmax (scenarios/postgres/04-mvcc/vacuum.yaml:31); current scoped support applies
C01564	base	scenarios/postgres/04-mvcc/vacuum.yaml:30	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].t_ctid	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].t_ctid (scenarios/postgres/04-mvcc/vacuum.yaml:31); current scoped support applies
C01565	base	scenarios/postgres/04-mvcc/vacuum.yaml:31	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].lp	yaml-scalar	"4"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].lp (scenarios/postgres/04-mvcc/vacuum.yaml:32); current scoped support applies
C01566	base	scenarios/postgres/04-mvcc/vacuum.yaml:31	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].lp_flags	yaml-scalar	"1"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].lp_flags (scenarios/postgres/04-mvcc/vacuum.yaml:32); current scoped support applies
C01567	base	scenarios/postgres/04-mvcc/vacuum.yaml:31	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].t_xmin	yaml-scalar	"${last.xmin}"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].t_xmin (scenarios/postgres/04-mvcc/vacuum.yaml:32); current scoped support applies
C01568	base	scenarios/postgres/04-mvcc/vacuum.yaml:31	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].t_xmax	yaml-scalar	"0"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].t_xmax (scenarios/postgres/04-mvcc/vacuum.yaml:32); current scoped support applies
C01569	base	scenarios/postgres/04-mvcc/vacuum.yaml:31	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].t_ctid	yaml-scalar	"(0,4)"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].t_ctid (scenarios/postgres/04-mvcc/vacuum.yaml:32); current scoped support applies
C01570	base	scenarios/postgres/04-mvcc/vacuum.yaml:33	scenarios/postgres/04-mvcc/vacuum.yaml#steps[7].note	yaml-scalar	"The freed space is immediately reusable: the next INSERT lands in slot 2."	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[7].note (scenarios/postgres/04-mvcc/vacuum.yaml:34); current scoped support applies
C01571	base	scenarios/postgres/04-mvcc/vacuum.yaml:34	scenarios/postgres/04-mvcc/vacuum.yaml#steps[8].A	yaml-scalar	"INSERT INTO counters VALUES (2, 0) RETURNING ctid, id"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[8].A (scenarios/postgres/04-mvcc/vacuum.yaml:35); current scoped support applies
C01572	base	scenarios/postgres/04-mvcc/vacuum.yaml:35	scenarios/postgres/04-mvcc/vacuum.yaml#steps[8].expect[0].ctid	yaml-scalar	"(0,2)"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[8].expect[0].ctid (scenarios/postgres/04-mvcc/vacuum.yaml:36); current scoped support applies
C01573	base	scenarios/postgres/04-mvcc/vacuum.yaml:37	scenarios/postgres/04-mvcc/vacuum.yaml#steps[9].note	yaml-scalar	"Same story at file level — 1000 rows in 5 pages, doubled to 9 by an UPDATE of every row."	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/vacuum.yaml#steps[9].note; semantic decisions A1-A10 in audit report
C01574	base	scenarios/postgres/04-mvcc/vacuum.yaml:38	scenarios/postgres/04-mvcc/vacuum.yaml#steps[10].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[10].A (scenarios/postgres/04-mvcc/vacuum.yaml:39); current scoped support applies
C01575	base	scenarios/postgres/04-mvcc/vacuum.yaml:39	scenarios/postgres/04-mvcc/vacuum.yaml#steps[10].expect[0].pages	yaml-scalar	"5"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[10].expect[0].pages (scenarios/postgres/04-mvcc/vacuum.yaml:40); current scoped support applies
C01576	base	scenarios/postgres/04-mvcc/vacuum.yaml:40	scenarios/postgres/04-mvcc/vacuum.yaml#steps[11].A	yaml-scalar	"UPDATE bloat SET filler = 'y'"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[11].A (scenarios/postgres/04-mvcc/vacuum.yaml:41); current scoped support applies
C01577	base	scenarios/postgres/04-mvcc/vacuum.yaml:41	scenarios/postgres/04-mvcc/vacuum.yaml#steps[12].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[12].A (scenarios/postgres/04-mvcc/vacuum.yaml:42); current scoped support applies
C01578	base	scenarios/postgres/04-mvcc/vacuum.yaml:42	scenarios/postgres/04-mvcc/vacuum.yaml#steps[12].expect[0].pages	yaml-scalar	"9"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[12].expect[0].pages (scenarios/postgres/04-mvcc/vacuum.yaml:43); current scoped support applies
C01579	base	scenarios/postgres/04-mvcc/vacuum.yaml:44	scenarios/postgres/04-mvcc/vacuum.yaml#steps[13].A	yaml-scalar	"VACUUM bloat"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[13].A (scenarios/postgres/04-mvcc/vacuum.yaml:45); current scoped support applies
C01580	base	scenarios/postgres/04-mvcc/vacuum.yaml:45	scenarios/postgres/04-mvcc/vacuum.yaml#steps[14].note	yaml-scalar	"VACUUM cleaned 1000 dead tuples — and the file is still 9 pages. The space is free *inside* the file."	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Superseded/removed; exact current correspondences: scenarios/postgres/04-mvcc/vacuum.yaml#steps[14].note; semantic decisions A1-A10 in audit report
C01581	base	scenarios/postgres/04-mvcc/vacuum.yaml:48	scenarios/postgres/04-mvcc/vacuum.yaml#steps[15].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[15].A (scenarios/postgres/04-mvcc/vacuum.yaml:49); current scoped support applies
C01582	base	scenarios/postgres/04-mvcc/vacuum.yaml:49	scenarios/postgres/04-mvcc/vacuum.yaml#steps[15].expect[0].pages	yaml-scalar	"9"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[15].expect[0].pages (scenarios/postgres/04-mvcc/vacuum.yaml:50); current scoped support applies
C01583	base	scenarios/postgres/04-mvcc/vacuum.yaml:51	scenarios/postgres/04-mvcc/vacuum.yaml#steps[16].A	yaml-scalar	"VACUUM FULL bloat"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[16].A (scenarios/postgres/04-mvcc/vacuum.yaml:52); current scoped support applies
C01584	base	scenarios/postgres/04-mvcc/vacuum.yaml:52	scenarios/postgres/04-mvcc/vacuum.yaml#steps[17].note	yaml-scalar	"VACUUM FULL rewrites the table from scratch — back to 5 pages. The price: it holds ACCESS EXCLUSIVE for the whole rewrite."	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[17].note (scenarios/postgres/04-mvcc/vacuum.yaml:53); current scoped support applies
C01585	base	scenarios/postgres/04-mvcc/vacuum.yaml:55	scenarios/postgres/04-mvcc/vacuum.yaml#steps[18].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[18].A (scenarios/postgres/04-mvcc/vacuum.yaml:56); current scoped support applies
C01586	base	scenarios/postgres/04-mvcc/vacuum.yaml:56	scenarios/postgres/04-mvcc/vacuum.yaml#steps[18].expect[0].pages	yaml-scalar	"5"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Retained at scenarios/postgres/04-mvcc/vacuum.yaml#steps[18].expect[0].pages (scenarios/postgres/04-mvcc/vacuum.yaml:57); current scoped support applies
C01587	current	scenarios/postgres/04-mvcc/vacuum.yaml:1	scenarios/postgres/04-mvcc/vacuum.yaml#title	yaml-scalar	"VACUUM: observed slot reuse and file compaction"	P29	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01588	current	scenarios/postgres/04-mvcc/vacuum.yaml:2	scenarios/postgres/04-mvcc/vacuum.yaml#claim	yaml-scalar	"In this setup VACUUM frees inspected counters slots and the next INSERT reuses slot 2. Standard VACUUM leaves bloat at 9 pages; VACUUM FULL compacts it to 5. Standard VACUUM can truncate empty trailing pages under suitable locking conditions, a variant not executed here."	P29	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01589	current	scenarios/postgres/04-mvcc/vacuum.yaml:7	scenarios/postgres/04-mvcc/vacuum.yaml#setup	yaml-scalar	"CREATE EXTENSION pageinspect;\nCREATE TABLE counters (id int PRIMARY KEY, n int NOT NULL);\nINSERT INTO counters VALUES (1, 0);\nCREATE TABLE bloat (id int PRIMARY KEY, filler text NOT NULL);\nINSERT INTO bloat SELECT g, 'x' FROM generate_series(1, 1000) g;\n"	P29	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01590	current	scenarios/postgres/04-mvcc/vacuum.yaml:13	scenarios/postgres/04-mvcc/vacuum.yaml#sessions[0]	yaml-scalar	"A"	P29	PostgreSQL 18.6; setup and fresh sessions; READ COMMITTED unless the ordered SQL overrides it; relation/schema and other conditions specified in this field and registry		Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01591	current	scenarios/postgres/04-mvcc/vacuum.yaml:15	scenarios/postgres/04-mvcc/vacuum.yaml#steps[0].note	yaml-scalar	"Three updates leave three dead tuples on the page (the bloat lesson showed the chain)."	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01592	current	scenarios/postgres/04-mvcc/vacuum.yaml:16	scenarios/postgres/04-mvcc/vacuum.yaml#steps[1].A	yaml-scalar	"UPDATE counters SET n = 1 WHERE id = 1"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01593	current	scenarios/postgres/04-mvcc/vacuum.yaml:17	scenarios/postgres/04-mvcc/vacuum.yaml#steps[2].A	yaml-scalar	"UPDATE counters SET n = 2 WHERE id = 1"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01594	current	scenarios/postgres/04-mvcc/vacuum.yaml:18	scenarios/postgres/04-mvcc/vacuum.yaml#steps[3].A	yaml-scalar	"UPDATE counters SET n = 3 WHERE id = 1 RETURNING xmin, n"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01595	current	scenarios/postgres/04-mvcc/vacuum.yaml:19	scenarios/postgres/04-mvcc/vacuum.yaml#steps[3].capture	yaml-scalar	"last"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01596	current	scenarios/postgres/04-mvcc/vacuum.yaml:21	scenarios/postgres/04-mvcc/vacuum.yaml#steps[4].A	yaml-scalar	"VACUUM counters"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01597	current	scenarios/postgres/04-mvcc/vacuum.yaml:22	scenarios/postgres/04-mvcc/vacuum.yaml#steps[5].note	yaml-scalar	"After VACUUM: slot 1 is a redirect to the live version, slots 2–3 are unused (reusable), only slot 4 still holds a tuple. The corpses are gone."	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01598	current	scenarios/postgres/04-mvcc/vacuum.yaml:25	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].A	yaml-scalar	"SELECT lp, lp_flags, t_xmin, t_xmax, t_ctid\nFROM heap_page_items(get_raw_page('counters', 0)) ORDER BY lp\n"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01599	current	scenarios/postgres/04-mvcc/vacuum.yaml:29	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].lp	yaml-scalar	"1"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01600	current	scenarios/postgres/04-mvcc/vacuum.yaml:29	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].lp_flags	yaml-scalar	"2"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01601	current	scenarios/postgres/04-mvcc/vacuum.yaml:29	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].t_xmin	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01602	current	scenarios/postgres/04-mvcc/vacuum.yaml:29	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].t_xmax	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01603	current	scenarios/postgres/04-mvcc/vacuum.yaml:29	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[0].t_ctid	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01604	current	scenarios/postgres/04-mvcc/vacuum.yaml:30	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].lp	yaml-scalar	"2"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01605	current	scenarios/postgres/04-mvcc/vacuum.yaml:30	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].lp_flags	yaml-scalar	"0"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01606	current	scenarios/postgres/04-mvcc/vacuum.yaml:30	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].t_xmin	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01607	current	scenarios/postgres/04-mvcc/vacuum.yaml:30	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].t_xmax	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01608	current	scenarios/postgres/04-mvcc/vacuum.yaml:30	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[1].t_ctid	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01609	current	scenarios/postgres/04-mvcc/vacuum.yaml:31	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].lp	yaml-scalar	"3"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01610	current	scenarios/postgres/04-mvcc/vacuum.yaml:31	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].lp_flags	yaml-scalar	"0"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01611	current	scenarios/postgres/04-mvcc/vacuum.yaml:31	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].t_xmin	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01612	current	scenarios/postgres/04-mvcc/vacuum.yaml:31	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].t_xmax	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01613	current	scenarios/postgres/04-mvcc/vacuum.yaml:31	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[2].t_ctid	yaml-scalar	"null"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01614	current	scenarios/postgres/04-mvcc/vacuum.yaml:32	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].lp	yaml-scalar	"4"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01615	current	scenarios/postgres/04-mvcc/vacuum.yaml:32	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].lp_flags	yaml-scalar	"1"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01616	current	scenarios/postgres/04-mvcc/vacuum.yaml:32	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].t_xmin	yaml-scalar	"${last.xmin}"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01617	current	scenarios/postgres/04-mvcc/vacuum.yaml:32	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].t_xmax	yaml-scalar	"0"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01618	current	scenarios/postgres/04-mvcc/vacuum.yaml:32	scenarios/postgres/04-mvcc/vacuum.yaml#steps[6].expect[3].t_ctid	yaml-scalar	"(0,4)"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01619	current	scenarios/postgres/04-mvcc/vacuum.yaml:34	scenarios/postgres/04-mvcc/vacuum.yaml#steps[7].note	yaml-scalar	"The freed space is immediately reusable: the next INSERT lands in slot 2."	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01620	current	scenarios/postgres/04-mvcc/vacuum.yaml:35	scenarios/postgres/04-mvcc/vacuum.yaml#steps[8].A	yaml-scalar	"INSERT INTO counters VALUES (2, 0) RETURNING ctid, id"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01621	current	scenarios/postgres/04-mvcc/vacuum.yaml:36	scenarios/postgres/04-mvcc/vacuum.yaml#steps[8].expect[0].ctid	yaml-scalar	"(0,2)"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01622	current	scenarios/postgres/04-mvcc/vacuum.yaml:38	scenarios/postgres/04-mvcc/vacuum.yaml#steps[9].note	yaml-scalar	"At file level this 1000-row heap grows from 5 to 9 pages after UPDATE."	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01623	current	scenarios/postgres/04-mvcc/vacuum.yaml:39	scenarios/postgres/04-mvcc/vacuum.yaml#steps[10].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01624	current	scenarios/postgres/04-mvcc/vacuum.yaml:40	scenarios/postgres/04-mvcc/vacuum.yaml#steps[10].expect[0].pages	yaml-scalar	"5"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01625	current	scenarios/postgres/04-mvcc/vacuum.yaml:41	scenarios/postgres/04-mvcc/vacuum.yaml#steps[11].A	yaml-scalar	"UPDATE bloat SET filler = 'y'"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01626	current	scenarios/postgres/04-mvcc/vacuum.yaml:42	scenarios/postgres/04-mvcc/vacuum.yaml#steps[12].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01627	current	scenarios/postgres/04-mvcc/vacuum.yaml:43	scenarios/postgres/04-mvcc/vacuum.yaml#steps[12].expect[0].pages	yaml-scalar	"9"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01628	current	scenarios/postgres/04-mvcc/vacuum.yaml:45	scenarios/postgres/04-mvcc/vacuum.yaml#steps[13].A	yaml-scalar	"VACUUM bloat"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01629	current	scenarios/postgres/04-mvcc/vacuum.yaml:46	scenarios/postgres/04-mvcc/vacuum.yaml#steps[14].note	yaml-scalar	"Standard VACUUM completes and the asserted file size remains 9 pages. This size observation does not count reclaimed tuples or reusable bytes."	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01630	current	scenarios/postgres/04-mvcc/vacuum.yaml:49	scenarios/postgres/04-mvcc/vacuum.yaml#steps[15].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01631	current	scenarios/postgres/04-mvcc/vacuum.yaml:50	scenarios/postgres/04-mvcc/vacuum.yaml#steps[15].expect[0].pages	yaml-scalar	"9"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01632	current	scenarios/postgres/04-mvcc/vacuum.yaml:52	scenarios/postgres/04-mvcc/vacuum.yaml#steps[16].A	yaml-scalar	"VACUUM FULL bloat"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01633	current	scenarios/postgres/04-mvcc/vacuum.yaml:53	scenarios/postgres/04-mvcc/vacuum.yaml#steps[17].note	yaml-scalar	"VACUUM FULL rewrites the table from scratch — back to 5 pages. The price: it holds ACCESS EXCLUSIVE for the whole rewrite."	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01634	current	scenarios/postgres/04-mvcc/vacuum.yaml:56	scenarios/postgres/04-mvcc/vacuum.yaml#steps[18].A	yaml-scalar	"SELECT (pg_relation_size('bloat') / 8192)::int AS pages"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution	Resolved: scoped current Scenario source; executed SQL/setup or scoped explanation; support is this ordered schedule plus the cited contracts, not every possible execution
C01635	current	scenarios/postgres/04-mvcc/vacuum.yaml:57	scenarios/postgres/04-mvcc/vacuum.yaml#steps[18].expect[0].pages	yaml-scalar	"5"	P29	PostgreSQL 18.6; ordered schedule state before operation: A={"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}	{"A":{"phase":"standalone","level":"READ COMMITTED","lock_timeout":"0","deadlock_timeout":"1s"}}	D: externally observable assertion or wait/completion fence in this exact ordered step	Resolved: scoped current D: externally observable assertion or wait/completion fence in this exact ordered step
C01636	base	docs/postgres/03-locking/parts/alter-table-outage.md:1	docs/postgres/03-locking/parts/alter-table-outage.md#scenario[postgres/03-locking/alter-table-outage.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/alter-table-outage.yaml — do not edit by hand. -->\n\n```timeline\nA: SELECT (a long-lived transaction)\nB: ALTER TABLE … ADD COLUMN → ⏳ waits\nC: SELECT — just a read! → ⏳ waits\nA: COMMIT\nB: ⏵ ALTER TABLE … ADD COLUMN → completes\nC: ⏵ SELECT — just a read! → completes\n```\n\n*A is any long-lived transaction that has touched the table — a report, a stuck job…*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n```\n\n*The migration needs ACCESS EXCLUSIVE, so it waits for A. Expected. But now —*\n\n```transcript\nB> ALTER TABLE accounts ADD COLUMN note text;\n⏳ B is waiting for a lock…\n```\n\n*— every new query on the table queues behind the *waiting* ALTER. This is the outage.*\n\n```transcript\nC> SELECT balance FROM accounts WHERE id = 1;\n⏳ C is waiting for a lock…\n\nM> SELECT waiter.application_name AS waiter, blocker.application_name AS blocker\n   FROM pg_stat_activity waiter\n   JOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\n   WHERE waiter.wait_event_type = 'Lock'\n   ORDER BY waiter.application_name, blocker.application_name;\n waiter | blocker \n--------+---------\n B      | A       \n C      | B       \n(2 rows)\n```\n\n*Only when A ends does the pile-up drain — migration first, then the reads.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nALTER TABLE\n\n⏵ C resumes:\n balance \n---------\n     100 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/alter-table-outage.yaml)</small>\n"	P13	Exact scenarios/postgres/03-locking/alter-table-outage.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/parts/alter-table-outage.md#scenario[postgres/03-locking/alter-table-outage.yaml].complete-range; semantic decisions A1-A10 in audit report
C01637	base	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].scenario	ledger-field	"postgres/03-locking/alter-table-outage.yaml"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].scenario (docs/public/ledger.jsonl:79); current scoped support applies
C01638	base	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].engine	ledger-field	"postgres"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].engine (docs/public/ledger.jsonl:79); current scoped support applies
C01639	base	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].product	ledger-field	"PostgreSQL"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].product (docs/public/ledger.jsonl:79); current scoped support applies
C01640	base	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].version	ledger-field	"18.6"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].version (docs/public/ledger.jsonl:79); current scoped support applies
C01641	base	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].claim	ledger-field	"An ALTER TABLE queued behind one long transaction blocks every later query on that table — even plain SELECTs — because they must queue behind its ACCESS EXCLUSIVE request."	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].product; docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].version; docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[2]; docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[3]; docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].errors; semantic decisions A1-A10 in audit report
C01642	base	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[0]	ledger-field	"A"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[0] (docs/public/ledger.jsonl:79); current scoped support applies
C01643	base	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[1]	ledger-field	"B"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[1] (docs/public/ledger.jsonl:79); current scoped support applies
C01644	base	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[2]	ledger-field	"C"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[2] (docs/public/ledger.jsonl:79); current scoped support applies
C01645	base	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[3]	ledger-field	"M"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[3] (docs/public/ledger.jsonl:79); current scoped support applies
C01646	base	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].errors	ledger-field	"[]"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; metadata, not added execution coverage		Generated metadata mirror	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].errors (docs/public/ledger.jsonl:79); current scoped support applies
C01647	base	docs/public/llms-full.txt:5375	docs/public/llms-full.txt#section[postgres/03-locking/alter-table-outage.yaml].complete-range	llms-range	"## postgres/03-locking/alter-table-outage.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: An ALTER TABLE queued behind one long transaction blocks every later query on that table — even plain SELECTs — because they must queue behind its ACCESS EXCLUSIVE request.\n\n```timeline\nA: SELECT (a long-lived transaction)\nB: ALTER TABLE … ADD COLUMN → ⏳ waits\nC: SELECT — just a read! → ⏳ waits\nA: COMMIT\nB: ⏵ ALTER TABLE … ADD COLUMN → completes\nC: ⏵ SELECT — just a read! → completes\n```\n\n*A is any long-lived transaction that has touched the table — a report, a stuck job…*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n```\n\n*The migration needs ACCESS EXCLUSIVE, so it waits for A. Expected. But now —*\n\n```transcript\nB> ALTER TABLE accounts ADD COLUMN note text;\n⏳ B is waiting for a lock…\n```\n\n*— every new query on the table queues behind the *waiting* ALTER. This is the outage.*\n\n```transcript\nC> SELECT balance FROM accounts WHERE id = 1;\n⏳ C is waiting for a lock…\n\nM> SELECT waiter.application_name AS waiter, blocker.application_name AS blocker\n   FROM pg_stat_activity waiter\n   JOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\n   WHERE waiter.wait_event_type = 'Lock'\n   ORDER BY waiter.application_name, blocker.application_name;\n waiter | blocker \n--------+---------\n B      | A       \n C      | B       \n(2 rows)\n```\n\n*Only when A ends does the pile-up drain — migration first, then the reads.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nALTER TABLE\n\n⏵ C resumes:\n balance \n---------\n     100 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/alter-table-outage.yaml)</small>\n\n"	P13	Exact scenarios/postgres/03-locking/alter-table-outage.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/03-locking/alter-table-outage.yaml].complete-range; semantic decisions A1-A10 in audit report
C01648	current	docs/postgres/03-locking/parts/alter-table-outage.md:1	docs/postgres/03-locking/parts/alter-table-outage.md#scenario[postgres/03-locking/alter-table-outage.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/alter-table-outage.yaml — do not edit by hand. -->\n\n```timeline\nA: SELECT (a long-lived transaction)\nB: ALTER TABLE … ADD COLUMN → ⏳ waits\nC: SELECT — just a read! → ⏳ waits\nA: COMMIT\nB: ⏵ ALTER TABLE … ADD COLUMN → completes\nC: ⏵ SELECT — just a read! → completes\n```\n\n*A reads accounts inside an explicit transaction and retains its table lock.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n```\n\n*The migration needs ACCESS EXCLUSIVE, so it waits for A. Expected. But now —*\n\n```transcript\nB> ALTER TABLE accounts ADD COLUMN note text;\n⏳ B is waiting for a lock…\n```\n\n*C's new SELECT now waits behind the queued ALTER request.*\n\n```transcript\nC> SELECT balance FROM accounts WHERE id = 1;\n⏳ C is waiting for a lock…\n\nM> SELECT waiter.application_name AS waiter, blocker.application_name AS blocker\n   FROM pg_stat_activity waiter\n   JOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\n   WHERE waiter.wait_event_type = 'Lock'\n   ORDER BY waiter.application_name, blocker.application_name;\n waiter | blocker \n--------+---------\n B      | A       \n C      | B       \n(2 rows)\n```\n\n*A commits; B's standalone ALTER and C's read then complete.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nALTER TABLE\n\n⏵ C resumes:\n balance \n---------\n     100 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/alter-table-outage.yaml)</small>\n"	P13	Exact scenarios/postgres/03-locking/alter-table-outage.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01649	current	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].scenario	ledger-field	"postgres/03-locking/alter-table-outage.yaml"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01650	current	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].engine	ledger-field	"postgres"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01651	current	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].product	ledger-field	"PostgreSQL"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01652	current	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].version	ledger-field	"18.6"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01653	current	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].claim	ledger-field	"In this schedule ALTER TABLE ADD COLUMN waits behind A's retained ACCESS SHARE, and C's new SELECT waits behind the queued ACCESS EXCLUSIVE request. Both complete after A commits; this is not a universal queue-order guarantee."	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01654	current	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[0]	ledger-field	"A"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01655	current	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[1]	ledger-field	"B"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01656	current	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[2]	ledger-field	"C"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01657	current	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].sessions[3]	ledger-field	"M"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01658	current	docs/public/ledger.jsonl:79	docs/public/ledger.jsonl#scenario[postgres/03-locking/alter-table-outage.yaml].errors	ledger-field	"[]"	P13	Source scenarios/postgres/03-locking/alter-table-outage.yaml; metadata, not added execution coverage		Generated metadata mirror	Resolved: scoped current Generated metadata mirror
C01659	current	docs/public/llms-full.txt:5375	docs/public/llms-full.txt#section[postgres/03-locking/alter-table-outage.yaml].complete-range	llms-range	"## postgres/03-locking/alter-table-outage.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: In this schedule ALTER TABLE ADD COLUMN waits behind A's retained ACCESS SHARE, and C's new SELECT waits behind the queued ACCESS EXCLUSIVE request. Both complete after A commits; this is not a universal queue-order guarantee.\n\n```timeline\nA: SELECT (a long-lived transaction)\nB: ALTER TABLE … ADD COLUMN → ⏳ waits\nC: SELECT — just a read! → ⏳ waits\nA: COMMIT\nB: ⏵ ALTER TABLE … ADD COLUMN → completes\nC: ⏵ SELECT — just a read! → completes\n```\n\n*A reads accounts inside an explicit transaction and retains its table lock.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n```\n\n*The migration needs ACCESS EXCLUSIVE, so it waits for A. Expected. But now —*\n\n```transcript\nB> ALTER TABLE accounts ADD COLUMN note text;\n⏳ B is waiting for a lock…\n```\n\n*C's new SELECT now waits behind the queued ALTER request.*\n\n```transcript\nC> SELECT balance FROM accounts WHERE id = 1;\n⏳ C is waiting for a lock…\n\nM> SELECT waiter.application_name AS waiter, blocker.application_name AS blocker\n   FROM pg_stat_activity waiter\n   JOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\n   WHERE waiter.wait_event_type = 'Lock'\n   ORDER BY waiter.application_name, blocker.application_name;\n waiter | blocker \n--------+---------\n B      | A       \n C      | B       \n(2 rows)\n```\n\n*A commits; B's standalone ALTER and C's read then complete.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nALTER TABLE\n\n⏵ C resumes:\n balance \n---------\n     100 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/alter-table-outage.yaml)</small>\n\n"	P13	Exact scenarios/postgres/03-locking/alter-table-outage.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01660	base	docs/postgres/03-locking/parts/ddl-lock-timeout.md:1	docs/postgres/03-locking/parts/ddl-lock-timeout.md#scenario[postgres/03-locking/ddl-lock-timeout.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/ddl-lock-timeout.yaml — do not edit by hand. -->\n\n```timeline\nA: SELECT (long-lived txn) → holds ACCESS SHARE\nB: ALTER TABLE … → gives up after 100ms ← 55P03 canceling statement due to lock timeout\nC: SELECT → instant, nothing queued behind the ALTER\nA: COMMIT\nB: ALTER TABLE … (retry sails through)\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT balance FROM accounts WHERE id = 1; -- the same long transaction as before\n balance \n---------\n     100 \n(1 row)\n```\n\n*Same migration — but this time it gives up after 100ms instead of camping in the queue.*\n\n```transcript\nB> SET lock_timeout = '100ms';\nSET\n\nB> ALTER TABLE accounts ADD COLUMN note text;\nERROR:  55P03: canceling statement due to lock timeout\n```\n\n*No waiting ALTER in the queue means no outage: C's read is instant.*\n\n```transcript\nC> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n\nA> COMMIT;\nCOMMIT\n```\n\n*Retry the migration when it can actually get the lock — now it sails through.*\n\n```transcript\nB> ALTER TABLE accounts ADD COLUMN note text;\nALTER TABLE\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/ddl-lock-timeout.yaml)</small>\n"	P14	Exact scenarios/postgres/03-locking/ddl-lock-timeout.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/parts/ddl-lock-timeout.md#scenario[postgres/03-locking/ddl-lock-timeout.yaml].complete-range; semantic decisions A1-A10 in audit report
C01661	base	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].scenario	ledger-field	"postgres/03-locking/ddl-lock-timeout.yaml"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].scenario (docs/public/ledger.jsonl:80); current scoped support applies
C01662	base	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].engine	ledger-field	"postgres"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].engine (docs/public/ledger.jsonl:80); current scoped support applies
C01663	base	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].product	ledger-field	"PostgreSQL"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].product (docs/public/ledger.jsonl:80); current scoped support applies
C01664	base	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].version	ledger-field	"18.6"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].version (docs/public/ledger.jsonl:80); current scoped support applies
C01665	base	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].claim	ledger-field	"With lock_timeout set, a migration that can't get its lock fails fast (55P03) instead of queueing — and other sessions' queries are never blocked behind it."	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].product; docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].version; docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].sessions[2]; docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].errors[0]; semantic decisions A1-A10 in audit report
C01666	base	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].sessions[0]	ledger-field	"A"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].sessions[0] (docs/public/ledger.jsonl:80); current scoped support applies
C01667	base	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].sessions[1]	ledger-field	"B"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].sessions[1] (docs/public/ledger.jsonl:80); current scoped support applies
C01668	base	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].sessions[2]	ledger-field	"C"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].sessions[2] (docs/public/ledger.jsonl:80); current scoped support applies
C01669	base	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].errors[0]	ledger-field	"55P03"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].errors[0] (docs/public/ledger.jsonl:80); current scoped support applies
C01670	base	docs/public/llms-full.txt:5445	docs/public/llms-full.txt#section[postgres/03-locking/ddl-lock-timeout.yaml].complete-range	llms-range	"## postgres/03-locking/ddl-lock-timeout.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: With lock_timeout set, a migration that can't get its lock fails fast (55P03) instead of queueing — and other sessions' queries are never blocked behind it.\n\n```timeline\nA: SELECT (long-lived txn) → holds ACCESS SHARE\nB: ALTER TABLE … → gives up after 100ms ← 55P03 canceling statement due to lock timeout\nC: SELECT → instant, nothing queued behind the ALTER\nA: COMMIT\nB: ALTER TABLE … (retry sails through)\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT balance FROM accounts WHERE id = 1; -- the same long transaction as before\n balance \n---------\n     100 \n(1 row)\n```\n\n*Same migration — but this time it gives up after 100ms instead of camping in the queue.*\n\n```transcript\nB> SET lock_timeout = '100ms';\nSET\n\nB> ALTER TABLE accounts ADD COLUMN note text;\nERROR:  55P03: canceling statement due to lock timeout\n```\n\n*No waiting ALTER in the queue means no outage: C's read is instant.*\n\n```transcript\nC> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n\nA> COMMIT;\nCOMMIT\n```\n\n*Retry the migration when it can actually get the lock — now it sails through.*\n\n```transcript\nB> ALTER TABLE accounts ADD COLUMN note text;\nALTER TABLE\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/ddl-lock-timeout.yaml)</small>\n\n"	P14	Exact scenarios/postgres/03-locking/ddl-lock-timeout.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/03-locking/ddl-lock-timeout.yaml].complete-range; semantic decisions A1-A10 in audit report
C01671	current	docs/postgres/03-locking/parts/ddl-lock-timeout.md:1	docs/postgres/03-locking/parts/ddl-lock-timeout.md#scenario[postgres/03-locking/ddl-lock-timeout.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/ddl-lock-timeout.yaml — do not edit by hand. -->\n\n```timeline\nA: SELECT (long-lived txn) → holds ACCESS SHARE\nB: ALTER TABLE … → gives up after 100ms ← 55P03 canceling statement due to lock timeout\nC: SELECT after ALTER timeout → 100\nA: COMMIT\nB: ALTER TABLE … (retry completes)\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT balance FROM accounts WHERE id = 1; -- the same long transaction as before\n balance \n---------\n     100 \n(1 row)\n```\n\n*Same migration — but this time it gives up after 100ms instead of camping in the queue.*\n\n```transcript\nB> SET lock_timeout = '100ms';\nSET\n\nB> ALTER TABLE accounts ADD COLUMN note text;\nERROR:  55P03: canceling statement due to lock timeout\n```\n\n*After B's timeout removes its request, C's read returns 100. No read during B's wait is tested.*\n\n```transcript\nC> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n\nA> COMMIT;\nCOMMIT\n```\n\n*Retry the migration when it can actually get the lock — now it sails through.*\n\n```transcript\nB> ALTER TABLE accounts ADD COLUMN note text;\nALTER TABLE\n\nC> SELECT column_name FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'accounts' AND column_name = 'note';\n column_name \n-------------\n note        \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/ddl-lock-timeout.yaml)</small>\n"	P14	Exact scenarios/postgres/03-locking/ddl-lock-timeout.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01672	current	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].scenario	ledger-field	"postgres/03-locking/ddl-lock-timeout.yaml"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01673	current	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].engine	ledger-field	"postgres"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01674	current	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].product	ledger-field	"PostgreSQL"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01675	current	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].version	ledger-field	"18.6"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01676	current	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].claim	ledger-field	"B's standalone ALTER waits for a lock and fails with 55P03 under a 100ms lock_timeout. C reads successfully after that request leaves the queue; B's retry after A commits adds the column."	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01677	current	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].sessions[0]	ledger-field	"A"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01678	current	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].sessions[1]	ledger-field	"B"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01679	current	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].sessions[2]	ledger-field	"C"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01680	current	docs/public/ledger.jsonl:80	docs/public/ledger.jsonl#scenario[postgres/03-locking/ddl-lock-timeout.yaml].errors[0]	ledger-field	"55P03"	P14	Source scenarios/postgres/03-locking/ddl-lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01681	current	docs/public/llms-full.txt:5445	docs/public/llms-full.txt#section[postgres/03-locking/ddl-lock-timeout.yaml].complete-range	llms-range	"## postgres/03-locking/ddl-lock-timeout.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: B's standalone ALTER waits for a lock and fails with 55P03 under a 100ms lock_timeout. C reads successfully after that request leaves the queue; B's retry after A commits adds the column.\n\n```timeline\nA: SELECT (long-lived txn) → holds ACCESS SHARE\nB: ALTER TABLE … → gives up after 100ms ← 55P03 canceling statement due to lock timeout\nC: SELECT after ALTER timeout → 100\nA: COMMIT\nB: ALTER TABLE … (retry completes)\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT balance FROM accounts WHERE id = 1; -- the same long transaction as before\n balance \n---------\n     100 \n(1 row)\n```\n\n*Same migration — but this time it gives up after 100ms instead of camping in the queue.*\n\n```transcript\nB> SET lock_timeout = '100ms';\nSET\n\nB> ALTER TABLE accounts ADD COLUMN note text;\nERROR:  55P03: canceling statement due to lock timeout\n```\n\n*After B's timeout removes its request, C's read returns 100. No read during B's wait is tested.*\n\n```transcript\nC> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n\nA> COMMIT;\nCOMMIT\n```\n\n*Retry the migration when it can actually get the lock — now it sails through.*\n\n```transcript\nB> ALTER TABLE accounts ADD COLUMN note text;\nALTER TABLE\n\nC> SELECT column_name FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'accounts' AND column_name = 'note';\n column_name \n-------------\n note        \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/ddl-lock-timeout.yaml)</small>\n\n"	P14	Exact scenarios/postgres/03-locking/ddl-lock-timeout.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01682	base	docs/postgres/03-locking/parts/deadlock-avoidance.md:1	docs/postgres/03-locking/parts/deadlock-avoidance.md#scenario[postgres/03-locking/deadlock-avoidance.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/deadlock-avoidance.yaml — do not edit by hand. -->\n\n```timeline\nA: SELECT id IN (1,2) … FOR UPDATE → locks both, in id order\nB: SELECT id IN (1,2) … FOR UPDATE → ⏳ waits\nA: COMMIT → releases both\nB: ⏵ SELECT id IN (1,2) … FOR UPDATE → completes\n```\n\n*Both transfers grab *all* their row locks up front, ordered by id.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE;\n id \n----\n  1 \n  2 \n(2 rows)\n\nB> BEGIN;\nBEGIN\n\nB> SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE;\n⏳ B is waiting for a lock…\n```\n\n*No cycle is possible: B parks at the first row and holds nothing A needs.*\n\n```transcript\nA> UPDATE accounts SET balance = balance - 10 WHERE id = 1;\nUPDATE 1\n\nA> UPDATE accounts SET balance = balance + 10 WHERE id = 2;\nUPDATE 1\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\n id \n----\n  1 \n  2 \n(2 rows)\n\nB> UPDATE accounts SET balance = balance - 25 WHERE id = 2;\nUPDATE 1\n\nB> UPDATE accounts SET balance = balance + 25 WHERE id = 1;\nUPDATE 1\n\nB> COMMIT;\nCOMMIT\n\nA> SELECT owner, balance FROM accounts ORDER BY id; -- both transfers landed — same workload, zero deadlocks\n owner | balance \n-------+---------\n alice |     115 \n bob   |      85 \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/deadlock-avoidance.yaml)</small>\n"	P15	Exact scenarios/postgres/03-locking/deadlock-avoidance.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/parts/deadlock-avoidance.md#scenario[postgres/03-locking/deadlock-avoidance.yaml].complete-range; semantic decisions A1-A10 in audit report
C01683	base	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].scenario	ledger-field	"postgres/03-locking/deadlock-avoidance.yaml"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].scenario (docs/public/ledger.jsonl:81); current scoped support applies
C01684	base	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].engine	ledger-field	"postgres"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].engine (docs/public/ledger.jsonl:81); current scoped support applies
C01685	base	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].product	ledger-field	"PostgreSQL"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].product (docs/public/ledger.jsonl:81); current scoped support applies
C01686	base	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].version	ledger-field	"18.6"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].version (docs/public/ledger.jsonl:81); current scoped support applies
C01687	base	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].claim	ledger-field	"The same two opposite-direction transfers cannot deadlock if both transactions lock the rows in the same (id) order first — the second simply waits its turn."	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].product; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].version; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].errors; semantic decisions A1-A10 in audit report
C01688	base	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].sessions[0]	ledger-field	"A"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].sessions[0] (docs/public/ledger.jsonl:81); current scoped support applies
C01689	base	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].sessions[1]	ledger-field	"B"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].sessions[1] (docs/public/ledger.jsonl:81); current scoped support applies
C01690	base	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].errors	ledger-field	"[]"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; metadata, not added execution coverage		Generated metadata mirror	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].errors (docs/public/ledger.jsonl:81); current scoped support applies
C01691	base	docs/public/llms-full.txt:5501	docs/public/llms-full.txt#section[postgres/03-locking/deadlock-avoidance.yaml].complete-range	llms-range	"## postgres/03-locking/deadlock-avoidance.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: The same two opposite-direction transfers cannot deadlock if both transactions lock the rows in the same (id) order first — the second simply waits its turn.\n\n```timeline\nA: SELECT id IN (1,2) … FOR UPDATE → locks both, in id order\nB: SELECT id IN (1,2) … FOR UPDATE → ⏳ waits\nA: COMMIT → releases both\nB: ⏵ SELECT id IN (1,2) … FOR UPDATE → completes\n```\n\n*Both transfers grab *all* their row locks up front, ordered by id.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE;\n id \n----\n  1 \n  2 \n(2 rows)\n\nB> BEGIN;\nBEGIN\n\nB> SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE;\n⏳ B is waiting for a lock…\n```\n\n*No cycle is possible: B parks at the first row and holds nothing A needs.*\n\n```transcript\nA> UPDATE accounts SET balance = balance - 10 WHERE id = 1;\nUPDATE 1\n\nA> UPDATE accounts SET balance = balance + 10 WHERE id = 2;\nUPDATE 1\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\n id \n----\n  1 \n  2 \n(2 rows)\n\nB> UPDATE accounts SET balance = balance - 25 WHERE id = 2;\nUPDATE 1\n\nB> UPDATE accounts SET balance = balance + 25 WHERE id = 1;\nUPDATE 1\n\nB> COMMIT;\nCOMMIT\n\nA> SELECT owner, balance FROM accounts ORDER BY id; -- both transfers landed — same workload, zero deadlocks\n owner | balance \n-------+---------\n alice |     115 \n bob   |      85 \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/deadlock-avoidance.yaml)</small>\n\n"	P15	Exact scenarios/postgres/03-locking/deadlock-avoidance.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/03-locking/deadlock-avoidance.yaml].complete-range; semantic decisions A1-A10 in audit report
C01692	current	docs/postgres/03-locking/parts/deadlock-avoidance.md:1	docs/postgres/03-locking/parts/deadlock-avoidance.md#scenario[postgres/03-locking/deadlock-avoidance.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/deadlock-avoidance.yaml — do not edit by hand. -->\n\n```timeline\nA: SELECT id IN (1,2) … FOR UPDATE → locks both, in id order\nB: SELECT id IN (1,2) … FOR UPDATE → ⏳ waits\nA: COMMIT → releases both\nB: ⏵ SELECT id IN (1,2) … FOR UPDATE → completes\n```\n\n*Both transfers grab *all* their row locks up front, ordered by id.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE;\n id \n----\n  1 \n  2 \n(2 rows)\n\nB> BEGIN;\nBEGIN\n\nB> SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE;\n⏳ B is waiting for a lock…\n```\n\n*No cycle is possible: B parks at the first row and holds nothing A needs.*\n\n```transcript\nA> UPDATE accounts SET balance = balance - 10 WHERE id = 1;\nUPDATE 1\n\nA> UPDATE accounts SET balance = balance + 10 WHERE id = 2;\nUPDATE 1\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\n id \n----\n  1 \n  2 \n(2 rows)\n\nB> UPDATE accounts SET balance = balance - 25 WHERE id = 2;\nUPDATE 1\n\nB> UPDATE accounts SET balance = balance + 25 WHERE id = 1;\nUPDATE 1\n\nB> COMMIT;\nCOMMIT\n\nA> SELECT owner, balance FROM accounts ORDER BY id; -- both transfers committed in this schedule\n owner | balance \n-------+---------\n alice |     115 \n bob   |      85 \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/deadlock-avoidance.yaml)</small>\n"	P15	Exact scenarios/postgres/03-locking/deadlock-avoidance.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01693	current	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].scenario	ledger-field	"postgres/03-locking/deadlock-avoidance.yaml"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01694	current	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].engine	ledger-field	"postgres"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01695	current	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].product	ledger-field	"PostgreSQL"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01696	current	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].version	ledger-field	"18.6"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01697	current	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].claim	ledger-field	"In this two-row schedule both transfers lock rows in id order first. B waits for A, then both commit, leaving balances 115 and 85. Other resources and schedules are not tested."	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01698	current	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].sessions[0]	ledger-field	"A"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01699	current	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].sessions[1]	ledger-field	"B"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01700	current	docs/public/ledger.jsonl:81	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock-avoidance.yaml].errors	ledger-field	"[]"	P15	Source scenarios/postgres/03-locking/deadlock-avoidance.yaml; metadata, not added execution coverage		Generated metadata mirror	Resolved: scoped current Generated metadata mirror
C01701	current	docs/public/llms-full.txt:5507	docs/public/llms-full.txt#section[postgres/03-locking/deadlock-avoidance.yaml].complete-range	llms-range	"## postgres/03-locking/deadlock-avoidance.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: In this two-row schedule both transfers lock rows in id order first. B waits for A, then both commit, leaving balances 115 and 85. Other resources and schedules are not tested.\n\n```timeline\nA: SELECT id IN (1,2) … FOR UPDATE → locks both, in id order\nB: SELECT id IN (1,2) … FOR UPDATE → ⏳ waits\nA: COMMIT → releases both\nB: ⏵ SELECT id IN (1,2) … FOR UPDATE → completes\n```\n\n*Both transfers grab *all* their row locks up front, ordered by id.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE;\n id \n----\n  1 \n  2 \n(2 rows)\n\nB> BEGIN;\nBEGIN\n\nB> SELECT id FROM accounts WHERE id IN (1, 2) ORDER BY id FOR UPDATE;\n⏳ B is waiting for a lock…\n```\n\n*No cycle is possible: B parks at the first row and holds nothing A needs.*\n\n```transcript\nA> UPDATE accounts SET balance = balance - 10 WHERE id = 1;\nUPDATE 1\n\nA> UPDATE accounts SET balance = balance + 10 WHERE id = 2;\nUPDATE 1\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\n id \n----\n  1 \n  2 \n(2 rows)\n\nB> UPDATE accounts SET balance = balance - 25 WHERE id = 2;\nUPDATE 1\n\nB> UPDATE accounts SET balance = balance + 25 WHERE id = 1;\nUPDATE 1\n\nB> COMMIT;\nCOMMIT\n\nA> SELECT owner, balance FROM accounts ORDER BY id; -- both transfers committed in this schedule\n owner | balance \n-------+---------\n alice |     115 \n bob   |      85 \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/deadlock-avoidance.yaml)</small>\n\n"	P15	Exact scenarios/postgres/03-locking/deadlock-avoidance.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01702	base	docs/postgres/03-locking/parts/deadlock.md:1	docs/postgres/03-locking/parts/deadlock.md#scenario[postgres/03-locking/deadlock.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/deadlock.yaml — do not edit by hand. -->\n\n```timeline\nA: locks alice (id=1)\nB: locks bob (id=2)\nA: needs bob (id=2) → ⏳ waits\nB: needs alice (id=1) ← 40P01 deadlock detected\nA: ⏵ needs bob (id=2) → completes\n```\n\n```transcript\nA> SET deadlock_timeout = '10s'; -- In production the victim is effectively arbitrary — whichever waiter's deadlock_timeout (default 1s) fires first runs the check and aborts itself. We pin it here so the transcript is reproducible: B checks first.\nSET\n\nB> SET deadlock_timeout = '50ms';\nSET\n```\n\n*A transfers 10 from alice to bob; B transfers 25 from bob to alice.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = balance - 10 WHERE id = 1; -- A locks alice\nUPDATE 1\n\nB> BEGIN;\nBEGIN\n\nB> UPDATE accounts SET balance = balance - 25 WHERE id = 2; -- B locks bob\nUPDATE 1\n```\n\n*A now needs bob's row (B has it) — it waits.*\n\n```transcript\nA> UPDATE accounts SET balance = balance + 10 WHERE id = 2;\n⏳ A is waiting for a lock…\n```\n\n*B now needs alice's row (A has it). A waits for B, B waits for A: a cycle.*\n\n```transcript\nB> UPDATE accounts SET balance = balance + 25 WHERE id = 1; -- deadlock_detected — B is aborted…\nERROR:  40P01: deadlock detected\n```\n\n*The victim's abort frees bob's row, so A's stuck UPDATE completes.*\n\n```transcript\n⏵ A resumes:\nUPDATE 1\n\nA> COMMIT;\nCOMMIT\n\nB> ROLLBACK;\nROLLBACK\n\nA> SELECT owner, balance FROM accounts ORDER BY id; -- A's transfer survived; B's evaporated — retry it\n owner | balance \n-------+---------\n alice |      90 \n bob   |     110 \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/deadlock.yaml)</small>\n"	P16	Exact scenarios/postgres/03-locking/deadlock.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/parts/deadlock.md#scenario[postgres/03-locking/deadlock.yaml].complete-range; semantic decisions A1-A10 in audit report
C01703	base	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].scenario	ledger-field	"postgres/03-locking/deadlock.yaml"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].scenario (docs/public/ledger.jsonl:82); current scoped support applies
C01704	base	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].engine	ledger-field	"postgres"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].engine (docs/public/ledger.jsonl:82); current scoped support applies
C01705	base	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].product	ledger-field	"PostgreSQL"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].product (docs/public/ledger.jsonl:82); current scoped support applies
C01706	base	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].version	ledger-field	"18.6"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].version (docs/public/ledger.jsonl:82); current scoped support applies
C01707	base	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].claim	ledger-field	"Two transactions locking the same rows in opposite order deadlock; PostgreSQL detects the cycle and aborts one of them with SQLSTATE 40P01 so the other can finish."	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].product; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].version; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].errors[0]; semantic decisions A1-A10 in audit report
C01708	base	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].sessions[0]	ledger-field	"A"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].sessions[0] (docs/public/ledger.jsonl:82); current scoped support applies
C01709	base	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].sessions[1]	ledger-field	"B"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].sessions[1] (docs/public/ledger.jsonl:82); current scoped support applies
C01710	base	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].errors[0]	ledger-field	"40P01"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].errors[0] (docs/public/ledger.jsonl:82); current scoped support applies
C01711	base	docs/public/llms-full.txt:5571	docs/public/llms-full.txt#section[postgres/03-locking/deadlock.yaml].complete-range	llms-range	"## postgres/03-locking/deadlock.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: Two transactions locking the same rows in opposite order deadlock; PostgreSQL detects the cycle and aborts one of them with SQLSTATE 40P01 so the other can finish.\n\n```timeline\nA: locks alice (id=1)\nB: locks bob (id=2)\nA: needs bob (id=2) → ⏳ waits\nB: needs alice (id=1) ← 40P01 deadlock detected\nA: ⏵ needs bob (id=2) → completes\n```\n\n```transcript\nA> SET deadlock_timeout = '10s'; -- In production the victim is effectively arbitrary — whichever waiter's deadlock_timeout (default 1s) fires first runs the check and aborts itself. We pin it here so the transcript is reproducible: B checks first.\nSET\n\nB> SET deadlock_timeout = '50ms';\nSET\n```\n\n*A transfers 10 from alice to bob; B transfers 25 from bob to alice.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = balance - 10 WHERE id = 1; -- A locks alice\nUPDATE 1\n\nB> BEGIN;\nBEGIN\n\nB> UPDATE accounts SET balance = balance - 25 WHERE id = 2; -- B locks bob\nUPDATE 1\n```\n\n*A now needs bob's row (B has it) — it waits.*\n\n```transcript\nA> UPDATE accounts SET balance = balance + 10 WHERE id = 2;\n⏳ A is waiting for a lock…\n```\n\n*B now needs alice's row (A has it). A waits for B, B waits for A: a cycle.*\n\n```transcript\nB> UPDATE accounts SET balance = balance + 25 WHERE id = 1; -- deadlock_detected — B is aborted…\nERROR:  40P01: deadlock detected\n```\n\n*The victim's abort frees bob's row, so A's stuck UPDATE completes.*\n\n```transcript\n⏵ A resumes:\nUPDATE 1\n\nA> COMMIT;\nCOMMIT\n\nB> ROLLBACK;\nROLLBACK\n\nA> SELECT owner, balance FROM accounts ORDER BY id; -- A's transfer survived; B's evaporated — retry it\n owner | balance \n-------+---------\n alice |      90 \n bob   |     110 \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/deadlock.yaml)</small>\n\n"	P16	Exact scenarios/postgres/03-locking/deadlock.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/03-locking/deadlock.yaml].complete-range; semantic decisions A1-A10 in audit report
C01712	current	docs/postgres/03-locking/parts/deadlock.md:1	docs/postgres/03-locking/parts/deadlock.md#scenario[postgres/03-locking/deadlock.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/deadlock.yaml — do not edit by hand. -->\n\n```timeline\nA: locks alice (id=1)\nB: locks bob (id=2)\nA: needs bob (id=2) → ⏳ waits\nB: needs alice (id=1) ← 40P01 deadlock detected\nA: ⏵ needs bob (id=2) → completes\n```\n\n```transcript\nA> SET deadlock_timeout = '10s'; -- General victim choice must not be relied on. These unequal detection timeouts make B the observed victim in this controlled schedule; no universal minimum cycle duration is asserted.\nSET\n\nB> SET deadlock_timeout = '50ms';\nSET\n```\n\n*A transfers 10 from alice to bob; B transfers 25 from bob to alice.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = balance - 10 WHERE id = 1; -- A locks alice\nUPDATE 1\n\nB> BEGIN;\nBEGIN\n\nB> UPDATE accounts SET balance = balance - 25 WHERE id = 2; -- B locks bob\nUPDATE 1\n```\n\n*A now needs bob's row (B has it) — it waits.*\n\n```transcript\nA> UPDATE accounts SET balance = balance + 10 WHERE id = 2;\n⏳ A is waiting for a lock…\n```\n\n*B now needs alice's row (A has it). A waits for B, B waits for A: a cycle.*\n\n```transcript\nB> UPDATE accounts SET balance = balance + 25 WHERE id = 1; -- deadlock_detected — B is aborted…\nERROR:  40P01: deadlock detected\n```\n\n*The victim's abort frees bob's row, so A's stuck UPDATE completes.*\n\n```transcript\n⏵ A resumes:\nUPDATE 1\n\nA> COMMIT;\nCOMMIT\n\nB> ROLLBACK;\nROLLBACK\n\nA> SELECT owner, balance FROM accounts ORDER BY id; -- A's transfer committed; B's database changes did not commit\n owner | balance \n-------+---------\n alice |      90 \n bob   |     110 \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/deadlock.yaml)</small>\n"	P16	Exact scenarios/postgres/03-locking/deadlock.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01713	current	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].scenario	ledger-field	"postgres/03-locking/deadlock.yaml"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01714	current	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].engine	ledger-field	"postgres"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01715	current	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].product	ledger-field	"PostgreSQL"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01716	current	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].version	ledger-field	"18.6"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01717	current	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].claim	ledger-field	"In this opposite-order two-row schedule, with B's detection timeout shorter than A's, B gets 40P01, A completes and commits, and the asserted balances retain only A's transfer. General victim choice is not guaranteed."	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01718	current	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].sessions[0]	ledger-field	"A"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01719	current	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].sessions[1]	ledger-field	"B"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01720	current	docs/public/ledger.jsonl:82	docs/public/ledger.jsonl#scenario[postgres/03-locking/deadlock.yaml].errors[0]	ledger-field	"40P01"	P16	Source scenarios/postgres/03-locking/deadlock.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01721	current	docs/public/llms-full.txt:5577	docs/public/llms-full.txt#section[postgres/03-locking/deadlock.yaml].complete-range	llms-range	"## postgres/03-locking/deadlock.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: In this opposite-order two-row schedule, with B's detection timeout shorter than A's, B gets 40P01, A completes and commits, and the asserted balances retain only A's transfer. General victim choice is not guaranteed.\n\n```timeline\nA: locks alice (id=1)\nB: locks bob (id=2)\nA: needs bob (id=2) → ⏳ waits\nB: needs alice (id=1) ← 40P01 deadlock detected\nA: ⏵ needs bob (id=2) → completes\n```\n\n```transcript\nA> SET deadlock_timeout = '10s'; -- General victim choice must not be relied on. These unequal detection timeouts make B the observed victim in this controlled schedule; no universal minimum cycle duration is asserted.\nSET\n\nB> SET deadlock_timeout = '50ms';\nSET\n```\n\n*A transfers 10 from alice to bob; B transfers 25 from bob to alice.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = balance - 10 WHERE id = 1; -- A locks alice\nUPDATE 1\n\nB> BEGIN;\nBEGIN\n\nB> UPDATE accounts SET balance = balance - 25 WHERE id = 2; -- B locks bob\nUPDATE 1\n```\n\n*A now needs bob's row (B has it) — it waits.*\n\n```transcript\nA> UPDATE accounts SET balance = balance + 10 WHERE id = 2;\n⏳ A is waiting for a lock…\n```\n\n*B now needs alice's row (A has it). A waits for B, B waits for A: a cycle.*\n\n```transcript\nB> UPDATE accounts SET balance = balance + 25 WHERE id = 1; -- deadlock_detected — B is aborted…\nERROR:  40P01: deadlock detected\n```\n\n*The victim's abort frees bob's row, so A's stuck UPDATE completes.*\n\n```transcript\n⏵ A resumes:\nUPDATE 1\n\nA> COMMIT;\nCOMMIT\n\nB> ROLLBACK;\nROLLBACK\n\nA> SELECT owner, balance FROM accounts ORDER BY id; -- A's transfer committed; B's database changes did not commit\n owner | balance \n-------+---------\n alice |      90 \n bob   |     110 \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/deadlock.yaml)</small>\n\n"	P16	Exact scenarios/postgres/03-locking/deadlock.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01722	base	docs/postgres/03-locking/parts/fk-key-share.md:1	docs/postgres/03-locking/parts/fk-key-share.md#scenario[postgres/03-locking/fk-key-share.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/fk-key-share.yaml — do not edit by hand. -->\n\n```timeline\nA: INSERT child → FK locks parent FOR KEY SHARE\nB: UPDATE parent balance → allowed (non-key)\nB: DELETE parent → needs FOR UPDATE → ⏳ waits\nA: COMMIT\nB: ⏵ DELETE parent → needs FOR UPDATE ← 23503 update or delete on table \"customers\" violates foreign key constraint \"orders_customer_id_fkey\" on table \"orders\"\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> INSERT INTO orders VALUES (1, 1); -- FK check locks customers row 1 FOR KEY SHARE\nINSERT 0 1\n```\n\n*FOR KEY SHARE doesn't mind non-key updates — B can change the balance.*\n\n```transcript\nB> UPDATE customers SET balance = 50 WHERE id = 1;\nUPDATE 1\n```\n\n*But DELETE needs the strongest row lock (FOR UPDATE) — B has to wait.*\n\n```transcript\nB> DELETE FROM customers WHERE id = 1;\n⏳ B is waiting for a lock…\n\nA> COMMIT;\nCOMMIT\n```\n\n*A's order is now committed, so B's DELETE resumes — straight into the FK.*\n\n```transcript\n⏵ B's blocked statement fails:\nERROR:  23503: update or delete on table \"customers\" violates foreign key constraint \"orders_customer_id_fkey\" on table \"orders\"\n\nB> SELECT balance FROM customers WHERE id = 1; -- the parent survived, with B's earlier non-key update intact\n balance \n---------\n      50 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/fk-key-share.yaml)</small>\n"	P17	Exact scenarios/postgres/03-locking/fk-key-share.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Retained at docs/postgres/03-locking/parts/fk-key-share.md#scenario[postgres/03-locking/fk-key-share.yaml].complete-range (docs/postgres/03-locking/parts/fk-key-share.md:1); current scoped support applies
C01723	base	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].scenario	ledger-field	"postgres/03-locking/fk-key-share.yaml"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].scenario (docs/public/ledger.jsonl:83); current scoped support applies
C01724	base	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].engine	ledger-field	"postgres"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].engine (docs/public/ledger.jsonl:83); current scoped support applies
C01725	base	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].product	ledger-field	"PostgreSQL"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].product (docs/public/ledger.jsonl:83); current scoped support applies
C01726	base	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].version	ledger-field	"18.6"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].version (docs/public/ledger.jsonl:83); current scoped support applies
C01727	base	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].claim	ledger-field	"INSERTing a child row locks the referenced parent row with FOR KEY SHARE: updating the parent's other columns still works, but deleting it blocks — and then fails the moment the child commits."	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].product; docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].version; docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].errors[0]; semantic decisions A1-A10 in audit report
C01728	base	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].sessions[0]	ledger-field	"A"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].sessions[0] (docs/public/ledger.jsonl:83); current scoped support applies
C01729	base	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].sessions[1]	ledger-field	"B"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].sessions[1] (docs/public/ledger.jsonl:83); current scoped support applies
C01730	base	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].errors[0]	ledger-field	"23503"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].errors[0] (docs/public/ledger.jsonl:83); current scoped support applies
C01731	base	docs/public/llms-full.txt:5644	docs/public/llms-full.txt#section[postgres/03-locking/fk-key-share.yaml].complete-range	llms-range	"## postgres/03-locking/fk-key-share.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: INSERTing a child row locks the referenced parent row with FOR KEY SHARE: updating the parent's other columns still works, but deleting it blocks — and then fails the moment the child commits.\n\n```timeline\nA: INSERT child → FK locks parent FOR KEY SHARE\nB: UPDATE parent balance → allowed (non-key)\nB: DELETE parent → needs FOR UPDATE → ⏳ waits\nA: COMMIT\nB: ⏵ DELETE parent → needs FOR UPDATE ← 23503 update or delete on table \"customers\" violates foreign key constraint \"orders_customer_id_fkey\" on table \"orders\"\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> INSERT INTO orders VALUES (1, 1); -- FK check locks customers row 1 FOR KEY SHARE\nINSERT 0 1\n```\n\n*FOR KEY SHARE doesn't mind non-key updates — B can change the balance.*\n\n```transcript\nB> UPDATE customers SET balance = 50 WHERE id = 1;\nUPDATE 1\n```\n\n*But DELETE needs the strongest row lock (FOR UPDATE) — B has to wait.*\n\n```transcript\nB> DELETE FROM customers WHERE id = 1;\n⏳ B is waiting for a lock…\n\nA> COMMIT;\nCOMMIT\n```\n\n*A's order is now committed, so B's DELETE resumes — straight into the FK.*\n\n```transcript\n⏵ B's blocked statement fails:\nERROR:  23503: update or delete on table \"customers\" violates foreign key constraint \"orders_customer_id_fkey\" on table \"orders\"\n\nB> SELECT balance FROM customers WHERE id = 1; -- the parent survived, with B's earlier non-key update intact\n balance \n---------\n      50 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/fk-key-share.yaml)</small>\n\n"	P17	Exact scenarios/postgres/03-locking/fk-key-share.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/03-locking/fk-key-share.yaml].complete-range; semantic decisions A1-A10 in audit report
C01732	current	docs/postgres/03-locking/parts/fk-key-share.md:1	docs/postgres/03-locking/parts/fk-key-share.md#scenario[postgres/03-locking/fk-key-share.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/fk-key-share.yaml — do not edit by hand. -->\n\n```timeline\nA: INSERT child → FK locks parent FOR KEY SHARE\nB: UPDATE parent balance → allowed (non-key)\nB: DELETE parent → needs FOR UPDATE → ⏳ waits\nA: COMMIT\nB: ⏵ DELETE parent → needs FOR UPDATE ← 23503 update or delete on table \"customers\" violates foreign key constraint \"orders_customer_id_fkey\" on table \"orders\"\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> INSERT INTO orders VALUES (1, 1); -- FK check locks customers row 1 FOR KEY SHARE\nINSERT 0 1\n```\n\n*FOR KEY SHARE doesn't mind non-key updates — B can change the balance.*\n\n```transcript\nB> UPDATE customers SET balance = 50 WHERE id = 1;\nUPDATE 1\n```\n\n*But DELETE needs the strongest row lock (FOR UPDATE) — B has to wait.*\n\n```transcript\nB> DELETE FROM customers WHERE id = 1;\n⏳ B is waiting for a lock…\n\nA> COMMIT;\nCOMMIT\n```\n\n*A's order is now committed, so B's DELETE resumes — straight into the FK.*\n\n```transcript\n⏵ B's blocked statement fails:\nERROR:  23503: update or delete on table \"customers\" violates foreign key constraint \"orders_customer_id_fkey\" on table \"orders\"\n\nB> SELECT balance FROM customers WHERE id = 1; -- the parent survived, with B's earlier non-key update intact\n balance \n---------\n      50 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/fk-key-share.yaml)</small>\n"	P17	Exact scenarios/postgres/03-locking/fk-key-share.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01733	current	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].scenario	ledger-field	"postgres/03-locking/fk-key-share.yaml"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01734	current	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].engine	ledger-field	"postgres"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01735	current	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].product	ledger-field	"PostgreSQL"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01736	current	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].version	ledger-field	"18.6"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01737	current	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].claim	ledger-field	"In this immediate foreign-key insert schedule, B's non-key parent UPDATE succeeds, its DELETE waits for A, and after A commits the DELETE fails with 23503. This conflict signature is consistent with FOR KEY SHARE."	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01738	current	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].sessions[0]	ledger-field	"A"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01739	current	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].sessions[1]	ledger-field	"B"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01740	current	docs/public/ledger.jsonl:83	docs/public/ledger.jsonl#scenario[postgres/03-locking/fk-key-share.yaml].errors[0]	ledger-field	"23503"	P17	Source scenarios/postgres/03-locking/fk-key-share.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01741	current	docs/public/llms-full.txt:5650	docs/public/llms-full.txt#section[postgres/03-locking/fk-key-share.yaml].complete-range	llms-range	"## postgres/03-locking/fk-key-share.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: In this immediate foreign-key insert schedule, B's non-key parent UPDATE succeeds, its DELETE waits for A, and after A commits the DELETE fails with 23503. This conflict signature is consistent with FOR KEY SHARE.\n\n```timeline\nA: INSERT child → FK locks parent FOR KEY SHARE\nB: UPDATE parent balance → allowed (non-key)\nB: DELETE parent → needs FOR UPDATE → ⏳ waits\nA: COMMIT\nB: ⏵ DELETE parent → needs FOR UPDATE ← 23503 update or delete on table \"customers\" violates foreign key constraint \"orders_customer_id_fkey\" on table \"orders\"\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> INSERT INTO orders VALUES (1, 1); -- FK check locks customers row 1 FOR KEY SHARE\nINSERT 0 1\n```\n\n*FOR KEY SHARE doesn't mind non-key updates — B can change the balance.*\n\n```transcript\nB> UPDATE customers SET balance = 50 WHERE id = 1;\nUPDATE 1\n```\n\n*But DELETE needs the strongest row lock (FOR UPDATE) — B has to wait.*\n\n```transcript\nB> DELETE FROM customers WHERE id = 1;\n⏳ B is waiting for a lock…\n\nA> COMMIT;\nCOMMIT\n```\n\n*A's order is now committed, so B's DELETE resumes — straight into the FK.*\n\n```transcript\n⏵ B's blocked statement fails:\nERROR:  23503: update or delete on table \"customers\" violates foreign key constraint \"orders_customer_id_fkey\" on table \"orders\"\n\nB> SELECT balance FROM customers WHERE id = 1; -- the parent survived, with B's earlier non-key update intact\n balance \n---------\n      50 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/fk-key-share.yaml)</small>\n\n"	P17	Exact scenarios/postgres/03-locking/fk-key-share.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01742	base	docs/postgres/03-locking/parts/for-update-blocks.md:1	docs/postgres/03-locking/parts/for-update-blocks.md#scenario[postgres/03-locking/for-update-blocks.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/for-update-blocks.yaml — do not edit by hand. -->\n\n```timeline\nA: SELECT … FOR UPDATE (locks the row)\nB: SELECT balance → 100 (readers don't block)\nB: UPDATE -10 → ⏳ waits\nA: COMMIT (releases the lock)\nB: ⏵ UPDATE -10 → completes\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT * FROM accounts WHERE id = 1 FOR UPDATE;\n id | owner | balance \n----+-------+---------\n  1 | alice |     100 \n(1 row)\n```\n\n*Reading the locked row costs B nothing — MVCC readers don't take row locks.*\n\n```transcript\nB> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n```\n\n*Writing to it is another story: B's UPDATE must wait for A.*\n\n```transcript\nB> UPDATE accounts SET balance = balance - 10 WHERE id = 1;\n⏳ B is waiting for a lock…\n\nA> UPDATE accounts SET balance = 150 WHERE id = 1;\nUPDATE 1\n\nA> COMMIT; -- releases the row lock\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n\nB> SELECT balance FROM accounts WHERE id = 1; -- B's -10 applied on top of A's committed 150\n balance \n---------\n     140 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/for-update-blocks.yaml)</small>\n"	P18	Exact scenarios/postgres/03-locking/for-update-blocks.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/parts/for-update-blocks.md#scenario[postgres/03-locking/for-update-blocks.yaml].complete-range; semantic decisions A1-A10 in audit report
C01743	base	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].scenario	ledger-field	"postgres/03-locking/for-update-blocks.yaml"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].scenario (docs/public/ledger.jsonl:84); current scoped support applies
C01744	base	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].engine	ledger-field	"postgres"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].engine (docs/public/ledger.jsonl:84); current scoped support applies
C01745	base	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].product	ledger-field	"PostgreSQL"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].product (docs/public/ledger.jsonl:84); current scoped support applies
C01746	base	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].version	ledger-field	"18.6"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].version (docs/public/ledger.jsonl:84); current scoped support applies
C01747	base	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].claim	ledger-field	"A row locked with SELECT FOR UPDATE can still be read by everyone, but any write to it waits until the locking transaction ends."	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].product; docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].version; docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].errors; semantic decisions A1-A10 in audit report
C01748	base	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].sessions[0]	ledger-field	"A"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].sessions[0] (docs/public/ledger.jsonl:84); current scoped support applies
C01749	base	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].sessions[1]	ledger-field	"B"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].sessions[1] (docs/public/ledger.jsonl:84); current scoped support applies
C01750	base	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].errors	ledger-field	"[]"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; metadata, not added execution coverage		Generated metadata mirror	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].errors (docs/public/ledger.jsonl:84); current scoped support applies
C01751	base	docs/public/llms-full.txt:5697	docs/public/llms-full.txt#section[postgres/03-locking/for-update-blocks.yaml].complete-range	llms-range	"## postgres/03-locking/for-update-blocks.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: A row locked with SELECT FOR UPDATE can still be read by everyone, but any write to it waits until the locking transaction ends.\n\n```timeline\nA: SELECT … FOR UPDATE (locks the row)\nB: SELECT balance → 100 (readers don't block)\nB: UPDATE -10 → ⏳ waits\nA: COMMIT (releases the lock)\nB: ⏵ UPDATE -10 → completes\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT * FROM accounts WHERE id = 1 FOR UPDATE;\n id | owner | balance \n----+-------+---------\n  1 | alice |     100 \n(1 row)\n```\n\n*Reading the locked row costs B nothing — MVCC readers don't take row locks.*\n\n```transcript\nB> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n```\n\n*Writing to it is another story: B's UPDATE must wait for A.*\n\n```transcript\nB> UPDATE accounts SET balance = balance - 10 WHERE id = 1;\n⏳ B is waiting for a lock…\n\nA> UPDATE accounts SET balance = 150 WHERE id = 1;\nUPDATE 1\n\nA> COMMIT; -- releases the row lock\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n\nB> SELECT balance FROM accounts WHERE id = 1; -- B's -10 applied on top of A's committed 150\n balance \n---------\n     140 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/for-update-blocks.yaml)</small>\n\n"	P18	Exact scenarios/postgres/03-locking/for-update-blocks.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/03-locking/for-update-blocks.yaml].complete-range; semantic decisions A1-A10 in audit report
C01752	current	docs/postgres/03-locking/parts/for-update-blocks.md:1	docs/postgres/03-locking/parts/for-update-blocks.md#scenario[postgres/03-locking/for-update-blocks.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/for-update-blocks.yaml — do not edit by hand. -->\n\n```timeline\nA: SELECT … FOR UPDATE (locks the row)\nB: ordinary SELECT → 100\nB: UPDATE -10 → ⏳ waits\nA: COMMIT (releases the lock)\nB: ⏵ UPDATE -10 → completes\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT * FROM accounts WHERE id = 1 FOR UPDATE;\n id | owner | balance \n----+-------+---------\n  1 | alice |     100 \n(1 row)\n```\n\n*B's ordinary SELECT reads the row without a conflicting row-lock request; cost is not measured.*\n\n```transcript\nB> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n```\n\n*Writing to it is another story: B's UPDATE must wait for A.*\n\n```transcript\nB> UPDATE accounts SET balance = balance - 10 WHERE id = 1;\n⏳ B is waiting for a lock…\n\nA> UPDATE accounts SET balance = 150 WHERE id = 1;\nUPDATE 1\n\nA> COMMIT; -- releases the row lock\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n\nB> SELECT balance FROM accounts WHERE id = 1; -- B's -10 applied on top of A's committed 150\n balance \n---------\n     140 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/for-update-blocks.yaml)</small>\n"	P18	Exact scenarios/postgres/03-locking/for-update-blocks.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01753	current	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].scenario	ledger-field	"postgres/03-locking/for-update-blocks.yaml"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01754	current	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].engine	ledger-field	"postgres"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01755	current	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].product	ledger-field	"PostgreSQL"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01756	current	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].version	ledger-field	"18.6"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01757	current	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].claim	ledger-field	"In this Read Committed schedule B's ordinary SELECT reads 100 while A holds FOR UPDATE; B's UPDATE waits, then uses A's committed 150 to leave 140. Locking reads can conflict; table-lock waits are not excluded."	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01758	current	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].sessions[0]	ledger-field	"A"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01759	current	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].sessions[1]	ledger-field	"B"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01760	current	docs/public/ledger.jsonl:84	docs/public/ledger.jsonl#scenario[postgres/03-locking/for-update-blocks.yaml].errors	ledger-field	"[]"	P18	Source scenarios/postgres/03-locking/for-update-blocks.yaml; metadata, not added execution coverage		Generated metadata mirror	Resolved: scoped current Generated metadata mirror
C01761	current	docs/public/llms-full.txt:5703	docs/public/llms-full.txt#section[postgres/03-locking/for-update-blocks.yaml].complete-range	llms-range	"## postgres/03-locking/for-update-blocks.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: In this Read Committed schedule B's ordinary SELECT reads 100 while A holds FOR UPDATE; B's UPDATE waits, then uses A's committed 150 to leave 140. Locking reads can conflict; table-lock waits are not excluded.\n\n```timeline\nA: SELECT … FOR UPDATE (locks the row)\nB: ordinary SELECT → 100\nB: UPDATE -10 → ⏳ waits\nA: COMMIT (releases the lock)\nB: ⏵ UPDATE -10 → completes\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT * FROM accounts WHERE id = 1 FOR UPDATE;\n id | owner | balance \n----+-------+---------\n  1 | alice |     100 \n(1 row)\n```\n\n*B's ordinary SELECT reads the row without a conflicting row-lock request; cost is not measured.*\n\n```transcript\nB> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n```\n\n*Writing to it is another story: B's UPDATE must wait for A.*\n\n```transcript\nB> UPDATE accounts SET balance = balance - 10 WHERE id = 1;\n⏳ B is waiting for a lock…\n\nA> UPDATE accounts SET balance = 150 WHERE id = 1;\nUPDATE 1\n\nA> COMMIT; -- releases the row lock\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n\nB> SELECT balance FROM accounts WHERE id = 1; -- B's -10 applied on top of A's committed 150\n balance \n---------\n     140 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/for-update-blocks.yaml)</small>\n\n"	P18	Exact scenarios/postgres/03-locking/for-update-blocks.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01762	base	docs/postgres/03-locking/parts/lock-mode-matrix.md:1	docs/postgres/03-locking/parts/lock-mode-matrix.md#scenario[postgres/03-locking/lock-mode-matrix.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/lock-mode-matrix.yaml — do not edit by hand. -->\n\n```timeline\nA: SELECT … FOR SHARE (A)\nB: SELECT … FOR SHARE (B) → coexists\nB: UPDATE → FOR NO KEY UPDATE → ⏳ waits\nA: COMMIT (releases A's FOR SHARE)\nB: ⏵ UPDATE → FOR NO KEY UPDATE → completes\nA: UPDATE → FOR NO KEY UPDATE (A)\nB: SELECT … FOR KEY SHARE → coexists with the UPDATE\nB: SELECT … FOR UPDATE → ⏳ waits\nA: COMMIT (releases A)\nB: ⏵ SELECT … FOR UPDATE → completes\n```\n\n*Two FOR SHARE locks on the same row coexist happily…*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT id FROM accounts WHERE id = 1 FOR SHARE;\n id \n----\n  1 \n(1 row)\n\nB> BEGIN;\nBEGIN\n\nB> SELECT id FROM accounts WHERE id = 1 FOR SHARE;\n id \n----\n  1 \n(1 row)\n\nB> COMMIT;\nCOMMIT\n```\n\n*…but FOR SHARE still blocks a plain UPDATE (which takes FOR NO KEY UPDATE).*\n\n```transcript\nB> UPDATE accounts SET balance = 200 WHERE id = 1;\n⏳ B is waiting for a lock…\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n```\n\n*The weakest lock, FOR KEY SHARE, even coexists with a running UPDATE…*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = 300 WHERE id = 1;\nUPDATE 1\n\nB> SELECT id FROM accounts WHERE id = 1 FOR KEY SHARE;\n id \n----\n  1 \n(1 row)\n```\n\n*…while the strongest, FOR UPDATE, has to wait for it.*\n\n```transcript\nB> SELECT id FROM accounts WHERE id = 1 FOR UPDATE;\n⏳ B is waiting for a lock…\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\n id \n----\n  1 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/lock-mode-matrix.yaml)</small>\n"	P19	Exact scenarios/postgres/03-locking/lock-mode-matrix.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Retained at docs/postgres/03-locking/parts/lock-mode-matrix.md#scenario[postgres/03-locking/lock-mode-matrix.yaml].complete-range (docs/postgres/03-locking/parts/lock-mode-matrix.md:1); current scoped support applies
C01763	base	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].scenario	ledger-field	"postgres/03-locking/lock-mode-matrix.yaml"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].scenario (docs/public/ledger.jsonl:85); current scoped support applies
C01764	base	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].engine	ledger-field	"postgres"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].engine (docs/public/ledger.jsonl:85); current scoped support applies
C01765	base	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].product	ledger-field	"PostgreSQL"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].product (docs/public/ledger.jsonl:85); current scoped support applies
C01766	base	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].version	ledger-field	"18.6"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].version (docs/public/ledger.jsonl:85); current scoped support applies
C01767	base	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].claim	ledger-field	"FOR KEY SHARE < FOR SHARE < FOR NO KEY UPDATE < FOR UPDATE: two share-mode locks coexist, but a share lock still stops writers, and FOR UPDATE stops everything."	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].product; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].version; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].errors; semantic decisions A1-A10 in audit report
C01768	base	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].sessions[0]	ledger-field	"A"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].sessions[0] (docs/public/ledger.jsonl:85); current scoped support applies
C01769	base	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].sessions[1]	ledger-field	"B"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].sessions[1] (docs/public/ledger.jsonl:85); current scoped support applies
C01770	base	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].errors	ledger-field	"[]"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; metadata, not added execution coverage		Generated metadata mirror	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].errors (docs/public/ledger.jsonl:85); current scoped support applies
C01771	base	docs/public/llms-full.txt:5755	docs/public/llms-full.txt#section[postgres/03-locking/lock-mode-matrix.yaml].complete-range	llms-range	"## postgres/03-locking/lock-mode-matrix.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: FOR KEY SHARE < FOR SHARE < FOR NO KEY UPDATE < FOR UPDATE: two share-mode locks coexist, but a share lock still stops writers, and FOR UPDATE stops everything.\n\n```timeline\nA: SELECT … FOR SHARE (A)\nB: SELECT … FOR SHARE (B) → coexists\nB: UPDATE → FOR NO KEY UPDATE → ⏳ waits\nA: COMMIT (releases A's FOR SHARE)\nB: ⏵ UPDATE → FOR NO KEY UPDATE → completes\nA: UPDATE → FOR NO KEY UPDATE (A)\nB: SELECT … FOR KEY SHARE → coexists with the UPDATE\nB: SELECT … FOR UPDATE → ⏳ waits\nA: COMMIT (releases A)\nB: ⏵ SELECT … FOR UPDATE → completes\n```\n\n*Two FOR SHARE locks on the same row coexist happily…*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT id FROM accounts WHERE id = 1 FOR SHARE;\n id \n----\n  1 \n(1 row)\n\nB> BEGIN;\nBEGIN\n\nB> SELECT id FROM accounts WHERE id = 1 FOR SHARE;\n id \n----\n  1 \n(1 row)\n\nB> COMMIT;\nCOMMIT\n```\n\n*…but FOR SHARE still blocks a plain UPDATE (which takes FOR NO KEY UPDATE).*\n\n```transcript\nB> UPDATE accounts SET balance = 200 WHERE id = 1;\n⏳ B is waiting for a lock…\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n```\n\n*The weakest lock, FOR KEY SHARE, even coexists with a running UPDATE…*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = 300 WHERE id = 1;\nUPDATE 1\n\nB> SELECT id FROM accounts WHERE id = 1 FOR KEY SHARE;\n id \n----\n  1 \n(1 row)\n```\n\n*…while the strongest, FOR UPDATE, has to wait for it.*\n\n```transcript\nB> SELECT id FROM accounts WHERE id = 1 FOR UPDATE;\n⏳ B is waiting for a lock…\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\n id \n----\n  1 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/lock-mode-matrix.yaml)</small>\n\n"	P19	Exact scenarios/postgres/03-locking/lock-mode-matrix.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/03-locking/lock-mode-matrix.yaml].complete-range; semantic decisions A1-A10 in audit report
C01772	current	docs/postgres/03-locking/parts/lock-mode-matrix.md:1	docs/postgres/03-locking/parts/lock-mode-matrix.md#scenario[postgres/03-locking/lock-mode-matrix.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/lock-mode-matrix.yaml — do not edit by hand. -->\n\n```timeline\nA: SELECT … FOR SHARE (A)\nB: SELECT … FOR SHARE (B) → coexists\nB: UPDATE → FOR NO KEY UPDATE → ⏳ waits\nA: COMMIT (releases A's FOR SHARE)\nB: ⏵ UPDATE → FOR NO KEY UPDATE → completes\nA: UPDATE → FOR NO KEY UPDATE (A)\nB: SELECT … FOR KEY SHARE → coexists with the UPDATE\nB: SELECT … FOR UPDATE → ⏳ waits\nA: COMMIT (releases A)\nB: ⏵ SELECT … FOR UPDATE → completes\n```\n\n*Two FOR SHARE locks on the same row coexist happily…*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT id FROM accounts WHERE id = 1 FOR SHARE;\n id \n----\n  1 \n(1 row)\n\nB> BEGIN;\nBEGIN\n\nB> SELECT id FROM accounts WHERE id = 1 FOR SHARE;\n id \n----\n  1 \n(1 row)\n\nB> COMMIT;\nCOMMIT\n```\n\n*…but FOR SHARE still blocks a plain UPDATE (which takes FOR NO KEY UPDATE).*\n\n```transcript\nB> UPDATE accounts SET balance = 200 WHERE id = 1;\n⏳ B is waiting for a lock…\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n```\n\n*The weakest lock, FOR KEY SHARE, even coexists with a running UPDATE…*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = 300 WHERE id = 1;\nUPDATE 1\n\nB> SELECT id FROM accounts WHERE id = 1 FOR KEY SHARE;\n id \n----\n  1 \n(1 row)\n```\n\n*…while the strongest, FOR UPDATE, has to wait for it.*\n\n```transcript\nB> SELECT id FROM accounts WHERE id = 1 FOR UPDATE;\n⏳ B is waiting for a lock…\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\n id \n----\n  1 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/lock-mode-matrix.yaml)</small>\n"	P19	Exact scenarios/postgres/03-locking/lock-mode-matrix.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01773	current	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].scenario	ledger-field	"postgres/03-locking/lock-mode-matrix.yaml"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01774	current	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].engine	ledger-field	"postgres"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01775	current	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].product	ledger-field	"PostgreSQL"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01776	current	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].version	ledger-field	"18.6"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01777	current	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].claim	ledger-field	"This schedule asserts SHARE/SHARE coexistence, SHARE blocking a non-key UPDATE, KEY SHARE coexisting with that UPDATE, and FOR UPDATE waiting for it. The complete compatibility matrix is a manual contract."	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01778	current	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].sessions[0]	ledger-field	"A"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01779	current	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].sessions[1]	ledger-field	"B"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01780	current	docs/public/ledger.jsonl:85	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-mode-matrix.yaml].errors	ledger-field	"[]"	P19	Source scenarios/postgres/03-locking/lock-mode-matrix.yaml; metadata, not added execution coverage		Generated metadata mirror	Resolved: scoped current Generated metadata mirror
C01781	current	docs/public/llms-full.txt:5761	docs/public/llms-full.txt#section[postgres/03-locking/lock-mode-matrix.yaml].complete-range	llms-range	"## postgres/03-locking/lock-mode-matrix.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: This schedule asserts SHARE/SHARE coexistence, SHARE blocking a non-key UPDATE, KEY SHARE coexisting with that UPDATE, and FOR UPDATE waiting for it. The complete compatibility matrix is a manual contract.\n\n```timeline\nA: SELECT … FOR SHARE (A)\nB: SELECT … FOR SHARE (B) → coexists\nB: UPDATE → FOR NO KEY UPDATE → ⏳ waits\nA: COMMIT (releases A's FOR SHARE)\nB: ⏵ UPDATE → FOR NO KEY UPDATE → completes\nA: UPDATE → FOR NO KEY UPDATE (A)\nB: SELECT … FOR KEY SHARE → coexists with the UPDATE\nB: SELECT … FOR UPDATE → ⏳ waits\nA: COMMIT (releases A)\nB: ⏵ SELECT … FOR UPDATE → completes\n```\n\n*Two FOR SHARE locks on the same row coexist happily…*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT id FROM accounts WHERE id = 1 FOR SHARE;\n id \n----\n  1 \n(1 row)\n\nB> BEGIN;\nBEGIN\n\nB> SELECT id FROM accounts WHERE id = 1 FOR SHARE;\n id \n----\n  1 \n(1 row)\n\nB> COMMIT;\nCOMMIT\n```\n\n*…but FOR SHARE still blocks a plain UPDATE (which takes FOR NO KEY UPDATE).*\n\n```transcript\nB> UPDATE accounts SET balance = 200 WHERE id = 1;\n⏳ B is waiting for a lock…\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n```\n\n*The weakest lock, FOR KEY SHARE, even coexists with a running UPDATE…*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = 300 WHERE id = 1;\nUPDATE 1\n\nB> SELECT id FROM accounts WHERE id = 1 FOR KEY SHARE;\n id \n----\n  1 \n(1 row)\n```\n\n*…while the strongest, FOR UPDATE, has to wait for it.*\n\n```transcript\nB> SELECT id FROM accounts WHERE id = 1 FOR UPDATE;\n⏳ B is waiting for a lock…\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\n id \n----\n  1 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/lock-mode-matrix.yaml)</small>\n\n"	P19	Exact scenarios/postgres/03-locking/lock-mode-matrix.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01782	base	docs/postgres/03-locking/parts/lock-queue-fifo.md:1	docs/postgres/03-locking/parts/lock-queue-fifo.md#scenario[postgres/03-locking/lock-queue-fifo.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/lock-queue-fifo.yaml — do not edit by hand. -->\n\n```timeline\nA: UPDATE +1 (takes the row lock)\nB: UPDATE +10 → ⏳ waits\nC: UPDATE +100 → ⏳ waits\nM: who's waiting? → B and C\nA: COMMIT → lock passes to B\nB: ⏵ UPDATE +10 → completes\nB: COMMIT → lock passes to C\nC: ⏵ UPDATE +100 → completes\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = balance + 1 WHERE id = 1;\nUPDATE 1\n\nB> BEGIN;\nBEGIN\n\nB> UPDATE accounts SET balance = balance + 10 WHERE id = 1;\n⏳ B is waiting for a lock…\n\nC> UPDATE accounts SET balance = balance + 100 WHERE id = 1;\n⏳ C is waiting for a lock…\n```\n\n*A fourth session, M, can watch the pile-up in pg_stat_activity.*\n\n```transcript\nM> SELECT application_name AS waiting, pg_blocking_pids(pid) AS blocked_by\n   FROM pg_stat_activity\n   WHERE wait_event_type = 'Lock'\n   ORDER BY application_name;\n waiting | blocked_by \n---------+------------\n B       | {pid(A)}   \n C       | {pid(B)}   \n(2 rows)\n```\n\n*A commits. The lock goes to B — the head of the queue — not to C.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n\nM> SELECT application_name AS waiting, pg_blocking_pids(pid) AS blocked_by\n   FROM pg_stat_activity\n   WHERE wait_event_type = 'Lock'\n   ORDER BY application_name\n    -- C is still in line, now behind B\n waiting | blocked_by \n---------+------------\n C       | {pid(B)}   \n(1 row)\n\nB> COMMIT;\nCOMMIT\n\n⏵ C resumes:\nUPDATE 1\n\nC> SELECT balance FROM accounts WHERE id = 1; -- 100 + 1 + 10 + 100 — every update landed, in queue order\n balance \n---------\n     211 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/lock-queue-fifo.yaml)</small>\n"	P20	Exact scenarios/postgres/03-locking/lock-queue-fifo.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/parts/lock-queue-fifo.md#scenario[postgres/03-locking/lock-queue-fifo.yaml].complete-range; semantic decisions A1-A10 in audit report
C01783	base	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].scenario	ledger-field	"postgres/03-locking/lock-queue-fifo.yaml"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].scenario (docs/public/ledger.jsonl:86); current scoped support applies
C01784	base	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].engine	ledger-field	"postgres"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].engine (docs/public/ledger.jsonl:86); current scoped support applies
C01785	base	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].product	ledger-field	"PostgreSQL"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].product (docs/public/ledger.jsonl:86); current scoped support applies
C01786	base	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].version	ledger-field	"18.6"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].version (docs/public/ledger.jsonl:86); current scoped support applies
C01787	base	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].claim	ledger-field	"Sessions waiting for the same row lock queue up: when the holder commits, the lock goes to the first waiter, and everyone else keeps waiting behind it."	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].product; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].version; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[2]; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[3]; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].errors; semantic decisions A1-A10 in audit report
C01788	base	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[0]	ledger-field	"A"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[0] (docs/public/ledger.jsonl:86); current scoped support applies
C01789	base	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[1]	ledger-field	"B"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[1] (docs/public/ledger.jsonl:86); current scoped support applies
C01790	base	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[2]	ledger-field	"C"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[2] (docs/public/ledger.jsonl:86); current scoped support applies
C01791	base	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[3]	ledger-field	"M"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[3] (docs/public/ledger.jsonl:86); current scoped support applies
C01792	base	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].errors	ledger-field	"[]"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; metadata, not added execution coverage		Generated metadata mirror	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].errors (docs/public/ledger.jsonl:86); current scoped support applies
C01793	base	docs/public/llms-full.txt:5845	docs/public/llms-full.txt#section[postgres/03-locking/lock-queue-fifo.yaml].complete-range	llms-range	"## postgres/03-locking/lock-queue-fifo.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: Sessions waiting for the same row lock queue up: when the holder commits, the lock goes to the first waiter, and everyone else keeps waiting behind it.\n\n```timeline\nA: UPDATE +1 (takes the row lock)\nB: UPDATE +10 → ⏳ waits\nC: UPDATE +100 → ⏳ waits\nM: who's waiting? → B and C\nA: COMMIT → lock passes to B\nB: ⏵ UPDATE +10 → completes\nB: COMMIT → lock passes to C\nC: ⏵ UPDATE +100 → completes\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = balance + 1 WHERE id = 1;\nUPDATE 1\n\nB> BEGIN;\nBEGIN\n\nB> UPDATE accounts SET balance = balance + 10 WHERE id = 1;\n⏳ B is waiting for a lock…\n\nC> UPDATE accounts SET balance = balance + 100 WHERE id = 1;\n⏳ C is waiting for a lock…\n```\n\n*A fourth session, M, can watch the pile-up in pg_stat_activity.*\n\n```transcript\nM> SELECT application_name AS waiting, pg_blocking_pids(pid) AS blocked_by\n   FROM pg_stat_activity\n   WHERE wait_event_type = 'Lock'\n   ORDER BY application_name;\n waiting | blocked_by \n---------+------------\n B       | {pid(A)}   \n C       | {pid(B)}   \n(2 rows)\n```\n\n*A commits. The lock goes to B — the head of the queue — not to C.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n\nM> SELECT application_name AS waiting, pg_blocking_pids(pid) AS blocked_by\n   FROM pg_stat_activity\n   WHERE wait_event_type = 'Lock'\n   ORDER BY application_name\n    -- C is still in line, now behind B\n waiting | blocked_by \n---------+------------\n C       | {pid(B)}   \n(1 row)\n\nB> COMMIT;\nCOMMIT\n\n⏵ C resumes:\nUPDATE 1\n\nC> SELECT balance FROM accounts WHERE id = 1; -- 100 + 1 + 10 + 100 — every update landed, in queue order\n balance \n---------\n     211 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/lock-queue-fifo.yaml)</small>\n\n"	P20	Exact scenarios/postgres/03-locking/lock-queue-fifo.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/03-locking/lock-queue-fifo.yaml].complete-range; semantic decisions A1-A10 in audit report
C01794	current	docs/postgres/03-locking/parts/lock-queue-fifo.md:1	docs/postgres/03-locking/parts/lock-queue-fifo.md#scenario[postgres/03-locking/lock-queue-fifo.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/lock-queue-fifo.yaml — do not edit by hand. -->\n\n```timeline\nA: UPDATE +1 (takes the row lock)\nB: UPDATE +10 → ⏳ waits\nC: UPDATE +100 → ⏳ waits\nM: who's waiting? → B and C\nA: COMMIT → lock passes to B\nB: ⏵ UPDATE +10 → completes\nB: COMMIT → lock passes to C\nC: ⏵ UPDATE +100 → completes\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = balance + 1 WHERE id = 1;\nUPDATE 1\n\nB> BEGIN;\nBEGIN\n\nB> UPDATE accounts SET balance = balance + 10 WHERE id = 1;\n⏳ B is waiting for a lock…\n\nC> UPDATE accounts SET balance = balance + 100 WHERE id = 1;\n⏳ C is waiting for a lock…\n```\n\n*A fourth session, M, can watch the pile-up in pg_stat_activity.*\n\n```transcript\nM> SELECT application_name AS waiting, pg_blocking_pids(pid) AS blocked_by\n   FROM pg_stat_activity\n   WHERE wait_event_type = 'Lock'\n   ORDER BY application_name;\n waiting | blocked_by \n---------+------------\n B       | {pid(A)}   \n C       | {pid(B)}   \n(2 rows)\n```\n\n*A commits. B completes while C is observed waiting again.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n\nM> SELECT application_name AS waiting, pg_blocking_pids(pid) AS blocked_by\n   FROM pg_stat_activity\n   WHERE wait_event_type = 'Lock'\n   ORDER BY application_name\n    -- C is still in line, now behind B\n waiting | blocked_by \n---------+------------\n C       | {pid(B)}   \n(1 row)\n\nB> COMMIT;\nCOMMIT\n\n⏵ C resumes:\nUPDATE 1\n\nC> SELECT balance FROM accounts WHERE id = 1; -- 100 + 1 + 10 + 100 — every update landed, in queue order\n balance \n---------\n     211 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/lock-queue-fifo.yaml)</small>\n"	P20	Exact scenarios/postgres/03-locking/lock-queue-fifo.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01795	current	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].scenario	ledger-field	"postgres/03-locking/lock-queue-fifo.yaml"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01796	current	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].engine	ledger-field	"postgres"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01797	current	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].product	ledger-field	"PostgreSQL"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01798	current	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].version	ledger-field	"18.6"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01799	current	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].claim	ledger-field	"In this single-row update schedule B completes after A commits while C remains waiting; after B commits C completes, and the balance is 211. This observation does not establish universal FIFO fairness."	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01800	current	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[0]	ledger-field	"A"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01801	current	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[1]	ledger-field	"B"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01802	current	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[2]	ledger-field	"C"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01803	current	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].sessions[3]	ledger-field	"M"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01804	current	docs/public/ledger.jsonl:86	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-queue-fifo.yaml].errors	ledger-field	"[]"	P20	Source scenarios/postgres/03-locking/lock-queue-fifo.yaml; metadata, not added execution coverage		Generated metadata mirror	Resolved: scoped current Generated metadata mirror
C01805	current	docs/public/llms-full.txt:5851	docs/public/llms-full.txt#section[postgres/03-locking/lock-queue-fifo.yaml].complete-range	llms-range	"## postgres/03-locking/lock-queue-fifo.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: In this single-row update schedule B completes after A commits while C remains waiting; after B commits C completes, and the balance is 211. This observation does not establish universal FIFO fairness.\n\n```timeline\nA: UPDATE +1 (takes the row lock)\nB: UPDATE +10 → ⏳ waits\nC: UPDATE +100 → ⏳ waits\nM: who's waiting? → B and C\nA: COMMIT → lock passes to B\nB: ⏵ UPDATE +10 → completes\nB: COMMIT → lock passes to C\nC: ⏵ UPDATE +100 → completes\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = balance + 1 WHERE id = 1;\nUPDATE 1\n\nB> BEGIN;\nBEGIN\n\nB> UPDATE accounts SET balance = balance + 10 WHERE id = 1;\n⏳ B is waiting for a lock…\n\nC> UPDATE accounts SET balance = balance + 100 WHERE id = 1;\n⏳ C is waiting for a lock…\n```\n\n*A fourth session, M, can watch the pile-up in pg_stat_activity.*\n\n```transcript\nM> SELECT application_name AS waiting, pg_blocking_pids(pid) AS blocked_by\n   FROM pg_stat_activity\n   WHERE wait_event_type = 'Lock'\n   ORDER BY application_name;\n waiting | blocked_by \n---------+------------\n B       | {pid(A)}   \n C       | {pid(B)}   \n(2 rows)\n```\n\n*A commits. B completes while C is observed waiting again.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n\nM> SELECT application_name AS waiting, pg_blocking_pids(pid) AS blocked_by\n   FROM pg_stat_activity\n   WHERE wait_event_type = 'Lock'\n   ORDER BY application_name\n    -- C is still in line, now behind B\n waiting | blocked_by \n---------+------------\n C       | {pid(B)}   \n(1 row)\n\nB> COMMIT;\nCOMMIT\n\n⏵ C resumes:\nUPDATE 1\n\nC> SELECT balance FROM accounts WHERE id = 1; -- 100 + 1 + 10 + 100 — every update landed, in queue order\n balance \n---------\n     211 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/lock-queue-fifo.yaml)</small>\n\n"	P20	Exact scenarios/postgres/03-locking/lock-queue-fifo.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01806	base	docs/postgres/03-locking/parts/lock-timeout.md:1	docs/postgres/03-locking/parts/lock-timeout.md#scenario[postgres/03-locking/lock-timeout.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/lock-timeout.yaml — do not edit by hand. -->\n\n```timeline\nA: UPDATE 200 (locks row 1)\nB: UPDATE 300 → gives up after 100ms ← 55P03 canceling statement due to lock timeout\nA: COMMIT\nB: UPDATE 300 (retry succeeds)\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = 200 WHERE id = 1;\nUPDATE 1\n\nB> SET lock_timeout = '100ms';\nSET\n```\n\n*B queues for the row lock like anyone else — but gives up after 100ms.*\n\n```transcript\nB> UPDATE accounts SET balance = 300 WHERE id = 1; -- lock_not_available, raised after the timeout\nERROR:  55P03: canceling statement due to lock timeout\n```\n\n*The failure canceled only B's statement — a retry after A commits works.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\nB> UPDATE accounts SET balance = 300 WHERE id = 1;\nUPDATE 1\n\nB> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     300 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/lock-timeout.yaml)</small>\n"	P21	Exact scenarios/postgres/03-locking/lock-timeout.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/parts/lock-timeout.md#scenario[postgres/03-locking/lock-timeout.yaml].complete-range; semantic decisions A1-A10 in audit report
C01807	base	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].scenario	ledger-field	"postgres/03-locking/lock-timeout.yaml"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].scenario (docs/public/ledger.jsonl:87); current scoped support applies
C01808	base	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].engine	ledger-field	"postgres"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].engine (docs/public/ledger.jsonl:87); current scoped support applies
C01809	base	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].product	ledger-field	"PostgreSQL"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].product (docs/public/ledger.jsonl:87); current scoped support applies
C01810	base	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].version	ledger-field	"18.6"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].version (docs/public/ledger.jsonl:87); current scoped support applies
C01811	base	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].claim	ledger-field	"With lock_timeout set, a statement waits for a lock only that long, then fails with SQLSTATE 55P03 — the same code NOWAIT raises immediately."	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].product; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].version; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].errors[0]; semantic decisions A1-A10 in audit report
C01812	base	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].sessions[0]	ledger-field	"A"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].sessions[0] (docs/public/ledger.jsonl:87); current scoped support applies
C01813	base	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].sessions[1]	ledger-field	"B"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].sessions[1] (docs/public/ledger.jsonl:87); current scoped support applies
C01814	base	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].errors[0]	ledger-field	"55P03"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].errors[0] (docs/public/ledger.jsonl:87); current scoped support applies
C01815	base	docs/public/llms-full.txt:5926	docs/public/llms-full.txt#section[postgres/03-locking/lock-timeout.yaml].complete-range	llms-range	"## postgres/03-locking/lock-timeout.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: With lock_timeout set, a statement waits for a lock only that long, then fails with SQLSTATE 55P03 — the same code NOWAIT raises immediately.\n\n```timeline\nA: UPDATE 200 (locks row 1)\nB: UPDATE 300 → gives up after 100ms ← 55P03 canceling statement due to lock timeout\nA: COMMIT\nB: UPDATE 300 (retry succeeds)\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = 200 WHERE id = 1;\nUPDATE 1\n\nB> SET lock_timeout = '100ms';\nSET\n```\n\n*B queues for the row lock like anyone else — but gives up after 100ms.*\n\n```transcript\nB> UPDATE accounts SET balance = 300 WHERE id = 1; -- lock_not_available, raised after the timeout\nERROR:  55P03: canceling statement due to lock timeout\n```\n\n*The failure canceled only B's statement — a retry after A commits works.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\nB> UPDATE accounts SET balance = 300 WHERE id = 1;\nUPDATE 1\n\nB> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     300 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/lock-timeout.yaml)</small>\n\n"	P21	Exact scenarios/postgres/03-locking/lock-timeout.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/03-locking/lock-timeout.yaml].complete-range; semantic decisions A1-A10 in audit report
C01816	current	docs/postgres/03-locking/parts/lock-timeout.md:1	docs/postgres/03-locking/parts/lock-timeout.md#scenario[postgres/03-locking/lock-timeout.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/lock-timeout.yaml — do not edit by hand. -->\n\n```timeline\nA: UPDATE 200 (locks row 1)\nB: UPDATE 300 → gives up after 100ms ← 55P03 canceling statement due to lock timeout\nA: COMMIT\nB: UPDATE 300 (retry succeeds)\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = 200 WHERE id = 1;\nUPDATE 1\n\nB> SET lock_timeout = '100ms';\nSET\n```\n\n*B queues for the row lock like anyone else — but gives up after 100ms.*\n\n```transcript\nB> UPDATE accounts SET balance = 300 WHERE id = 1; -- lock_not_available, raised after the timeout\nERROR:  55P03: canceling statement due to lock timeout\n```\n\n*B's failed standalone statement ends its implicit transaction; a fresh attempt after A commits works here.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\nB> UPDATE accounts SET balance = 300 WHERE id = 1;\nUPDATE 1\n\nB> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     300 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/lock-timeout.yaml)</small>\n"	P21	Exact scenarios/postgres/03-locking/lock-timeout.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01817	current	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].scenario	ledger-field	"postgres/03-locking/lock-timeout.yaml"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01818	current	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].engine	ledger-field	"postgres"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01819	current	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].product	ledger-field	"PostgreSQL"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01820	current	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].version	ledger-field	"18.6"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01821	current	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].claim	ledger-field	"B's standalone UPDATE fails with 55P03 under a 100ms lock_timeout while A holds the row lock. After A commits, B retries successfully and reads 300. lock_timeout limits each acquisition, not total statement time."	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01822	current	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].sessions[0]	ledger-field	"A"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01823	current	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].sessions[1]	ledger-field	"B"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01824	current	docs/public/ledger.jsonl:87	docs/public/ledger.jsonl#scenario[postgres/03-locking/lock-timeout.yaml].errors[0]	ledger-field	"55P03"	P21	Source scenarios/postgres/03-locking/lock-timeout.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01825	current	docs/public/llms-full.txt:5932	docs/public/llms-full.txt#section[postgres/03-locking/lock-timeout.yaml].complete-range	llms-range	"## postgres/03-locking/lock-timeout.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: B's standalone UPDATE fails with 55P03 under a 100ms lock_timeout while A holds the row lock. After A commits, B retries successfully and reads 300. lock_timeout limits each acquisition, not total statement time.\n\n```timeline\nA: UPDATE 200 (locks row 1)\nB: UPDATE 300 → gives up after 100ms ← 55P03 canceling statement due to lock timeout\nA: COMMIT\nB: UPDATE 300 (retry succeeds)\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = 200 WHERE id = 1;\nUPDATE 1\n\nB> SET lock_timeout = '100ms';\nSET\n```\n\n*B queues for the row lock like anyone else — but gives up after 100ms.*\n\n```transcript\nB> UPDATE accounts SET balance = 300 WHERE id = 1; -- lock_not_available, raised after the timeout\nERROR:  55P03: canceling statement due to lock timeout\n```\n\n*B's failed standalone statement ends its implicit transaction; a fresh attempt after A commits works here.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\nB> UPDATE accounts SET balance = 300 WHERE id = 1;\nUPDATE 1\n\nB> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     300 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/lock-timeout.yaml)</small>\n\n"	P21	Exact scenarios/postgres/03-locking/lock-timeout.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01826	base	docs/postgres/03-locking/parts/monitoring-locks.md:1	docs/postgres/03-locking/parts/monitoring-locks.md#scenario[postgres/03-locking/monitoring-locks.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/monitoring-locks.yaml — do not edit by hand. -->\n\n```timeline\nA: UPDATE (takes the row lock)\nB: UPDATE → waits on A → ⏳ waits\nA: COMMIT\nB: ⏵ UPDATE → waits on A → completes\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = 200 WHERE id = 1;\nUPDATE 1\n```\n\n*One innocent UPDATE = four locks: table, index, its own xid, its own virtual xid.*\n\n```transcript\nM> SELECT l.locktype, l.relation::regclass AS relation, l.mode, l.granted\n   FROM pg_locks l JOIN pg_stat_activity a ON a.pid = l.pid\n   WHERE a.application_name = 'A'\n   ORDER BY l.locktype, l.relation::regclass::text, l.mode;\n   locktype    |   relation    |       mode       | granted \n---------------+---------------+------------------+---------\n relation      | accounts      | RowExclusiveLock | t       \n relation      | accounts_pkey | RowExclusiveLock | t       \n transactionid |               | ExclusiveLock    | t       \n virtualxid    |               | ExclusiveLock    | t       \n(4 rows)\n\nB> UPDATE accounts SET balance = 300 WHERE id = 1;\n⏳ B is waiting for a lock…\n```\n\n*The waiter's tell: a lock row with granted = f — it wants A's transaction id.*\n\n```transcript\nM> SELECT l.locktype, l.mode, l.granted\n   FROM pg_locks l JOIN pg_stat_activity a ON a.pid = l.pid\n   WHERE a.application_name = 'B' AND NOT l.granted;\n   locktype    |   mode    | granted \n---------------+-----------+---------\n transactionid | ShareLock | f       \n(1 row)\n```\n\n*You rarely need to decode pg_locks by hand — pg_blocking_pids() names the culprit.*\n\n```transcript\nM> SELECT waiter.application_name AS waiter, blocker.application_name AS blocker\n   FROM pg_stat_activity waiter\n   JOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\n   WHERE waiter.wait_event_type = 'Lock'\n   ORDER BY waiter.application_name, blocker.application_name;\n waiter | blocker \n--------+---------\n B      | A       \n(1 row)\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/monitoring-locks.yaml)</small>\n"	P22	Exact scenarios/postgres/03-locking/monitoring-locks.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/parts/monitoring-locks.md#scenario[postgres/03-locking/monitoring-locks.yaml].complete-range; semantic decisions A1-A10 in audit report
C01827	base	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].scenario	ledger-field	"postgres/03-locking/monitoring-locks.yaml"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].scenario (docs/public/ledger.jsonl:88); current scoped support applies
C01828	base	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].engine	ledger-field	"postgres"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].engine (docs/public/ledger.jsonl:88); current scoped support applies
C01829	base	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].product	ledger-field	"PostgreSQL"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].product (docs/public/ledger.jsonl:88); current scoped support applies
C01830	base	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].version	ledger-field	"18.6"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].version (docs/public/ledger.jsonl:88); current scoped support applies
C01831	base	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].claim	ledger-field	"pg_locks shows every lock a transaction holds — a single-row UPDATE takes four — and a waiter shows up as granted = false, findable via pg_blocking_pids()."	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].product; docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].version; docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].sessions[2]; docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].errors; semantic decisions A1-A10 in audit report
C01832	base	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].sessions[0]	ledger-field	"A"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].sessions[0] (docs/public/ledger.jsonl:88); current scoped support applies
C01833	base	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].sessions[1]	ledger-field	"B"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].sessions[1] (docs/public/ledger.jsonl:88); current scoped support applies
C01834	base	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].sessions[2]	ledger-field	"M"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].sessions[2] (docs/public/ledger.jsonl:88); current scoped support applies
C01835	base	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].errors	ledger-field	"[]"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; metadata, not added execution coverage		Generated metadata mirror	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].errors (docs/public/ledger.jsonl:88); current scoped support applies
C01836	base	docs/public/llms-full.txt:5974	docs/public/llms-full.txt#section[postgres/03-locking/monitoring-locks.yaml].complete-range	llms-range	"## postgres/03-locking/monitoring-locks.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: pg_locks shows every lock a transaction holds — a single-row UPDATE takes four — and a waiter shows up as granted = false, findable via pg_blocking_pids().\n\n```timeline\nA: UPDATE (takes the row lock)\nB: UPDATE → waits on A → ⏳ waits\nA: COMMIT\nB: ⏵ UPDATE → waits on A → completes\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = 200 WHERE id = 1;\nUPDATE 1\n```\n\n*One innocent UPDATE = four locks: table, index, its own xid, its own virtual xid.*\n\n```transcript\nM> SELECT l.locktype, l.relation::regclass AS relation, l.mode, l.granted\n   FROM pg_locks l JOIN pg_stat_activity a ON a.pid = l.pid\n   WHERE a.application_name = 'A'\n   ORDER BY l.locktype, l.relation::regclass::text, l.mode;\n   locktype    |   relation    |       mode       | granted \n---------------+---------------+------------------+---------\n relation      | accounts      | RowExclusiveLock | t       \n relation      | accounts_pkey | RowExclusiveLock | t       \n transactionid |               | ExclusiveLock    | t       \n virtualxid    |               | ExclusiveLock    | t       \n(4 rows)\n\nB> UPDATE accounts SET balance = 300 WHERE id = 1;\n⏳ B is waiting for a lock…\n```\n\n*The waiter's tell: a lock row with granted = f — it wants A's transaction id.*\n\n```transcript\nM> SELECT l.locktype, l.mode, l.granted\n   FROM pg_locks l JOIN pg_stat_activity a ON a.pid = l.pid\n   WHERE a.application_name = 'B' AND NOT l.granted;\n   locktype    |   mode    | granted \n---------------+-----------+---------\n transactionid | ShareLock | f       \n(1 row)\n```\n\n*You rarely need to decode pg_locks by hand — pg_blocking_pids() names the culprit.*\n\n```transcript\nM> SELECT waiter.application_name AS waiter, blocker.application_name AS blocker\n   FROM pg_stat_activity waiter\n   JOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\n   WHERE waiter.wait_event_type = 'Lock'\n   ORDER BY waiter.application_name, blocker.application_name;\n waiter | blocker \n--------+---------\n B      | A       \n(1 row)\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/monitoring-locks.yaml)</small>\n\n"	P22	Exact scenarios/postgres/03-locking/monitoring-locks.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/03-locking/monitoring-locks.yaml].complete-range; semantic decisions A1-A10 in audit report
C01837	current	docs/postgres/03-locking/parts/monitoring-locks.md:1	docs/postgres/03-locking/parts/monitoring-locks.md#scenario[postgres/03-locking/monitoring-locks.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/monitoring-locks.yaml — do not edit by hand. -->\n\n```timeline\nA: UPDATE (takes the row lock)\nB: UPDATE → waits on A → ⏳ waits\nA: COMMIT\nB: ⏵ UPDATE → waits on A → completes\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = 200 WHERE id = 1;\nUPDATE 1\n```\n\n*This UPDATE's inspected lock entries: table, index, assigned xid and virtual xid.*\n\n```transcript\nM> SELECT l.locktype, l.relation::regclass AS relation, l.mode, l.granted\n   FROM pg_locks l JOIN pg_stat_activity a ON a.pid = l.pid\n   WHERE a.application_name = 'A'\n   ORDER BY l.locktype, l.relation::regclass::text, l.mode;\n   locktype    |   relation    |       mode       | granted \n---------------+---------------+------------------+---------\n relation      | accounts      | RowExclusiveLock | t       \n relation      | accounts_pkey | RowExclusiveLock | t       \n transactionid |               | ExclusiveLock    | t       \n virtualxid    |               | ExclusiveLock    | t       \n(4 rows)\n\nB> UPDATE accounts SET balance = 300 WHERE id = 1;\n⏳ B is waiting for a lock…\n```\n\n*The waiter's tell: a lock row with granted = f — it wants A's transaction id.*\n\n```transcript\nM> SELECT l.locktype, l.mode, l.granted\n   FROM pg_locks l JOIN pg_stat_activity a ON a.pid = l.pid\n   WHERE a.application_name = 'B' AND NOT l.granted;\n   locktype    |   mode    | granted \n---------------+-----------+---------\n transactionid | ShareLock | f       \n(1 row)\n```\n\n*You rarely need to decode pg_locks by hand — pg_blocking_pids() names the culprit.*\n\n```transcript\nM> SELECT waiter.application_name AS waiter, blocker.application_name AS blocker\n   FROM pg_stat_activity waiter\n   JOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\n   WHERE waiter.wait_event_type = 'Lock'\n   ORDER BY waiter.application_name, blocker.application_name;\n waiter | blocker \n--------+---------\n B      | A       \n(1 row)\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/monitoring-locks.yaml)</small>\n"	P22	Exact scenarios/postgres/03-locking/monitoring-locks.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01838	current	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].scenario	ledger-field	"postgres/03-locking/monitoring-locks.yaml"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01839	current	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].engine	ledger-field	"postgres"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01840	current	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].product	ledger-field	"PostgreSQL"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01841	current	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].version	ledger-field	"18.6"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01842	current	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].claim	ledger-field	"For this table and primary index, M asserts four pg_locks entries for A's UPDATE, B's ungranted transaction-id ShareLock, and B's direct blocker A. Ordinary on-disk row locks normally do not appear directly in pg_locks."	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01843	current	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].sessions[0]	ledger-field	"A"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01844	current	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].sessions[1]	ledger-field	"B"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01845	current	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].sessions[2]	ledger-field	"M"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01846	current	docs/public/ledger.jsonl:88	docs/public/ledger.jsonl#scenario[postgres/03-locking/monitoring-locks.yaml].errors	ledger-field	"[]"	P22	Source scenarios/postgres/03-locking/monitoring-locks.yaml; metadata, not added execution coverage		Generated metadata mirror	Resolved: scoped current Generated metadata mirror
C01847	current	docs/public/llms-full.txt:5980	docs/public/llms-full.txt#section[postgres/03-locking/monitoring-locks.yaml].complete-range	llms-range	"## postgres/03-locking/monitoring-locks.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: For this table and primary index, M asserts four pg_locks entries for A's UPDATE, B's ungranted transaction-id ShareLock, and B's direct blocker A. Ordinary on-disk row locks normally do not appear directly in pg_locks.\n\n```timeline\nA: UPDATE (takes the row lock)\nB: UPDATE → waits on A → ⏳ waits\nA: COMMIT\nB: ⏵ UPDATE → waits on A → completes\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> UPDATE accounts SET balance = 200 WHERE id = 1;\nUPDATE 1\n```\n\n*This UPDATE's inspected lock entries: table, index, assigned xid and virtual xid.*\n\n```transcript\nM> SELECT l.locktype, l.relation::regclass AS relation, l.mode, l.granted\n   FROM pg_locks l JOIN pg_stat_activity a ON a.pid = l.pid\n   WHERE a.application_name = 'A'\n   ORDER BY l.locktype, l.relation::regclass::text, l.mode;\n   locktype    |   relation    |       mode       | granted \n---------------+---------------+------------------+---------\n relation      | accounts      | RowExclusiveLock | t       \n relation      | accounts_pkey | RowExclusiveLock | t       \n transactionid |               | ExclusiveLock    | t       \n virtualxid    |               | ExclusiveLock    | t       \n(4 rows)\n\nB> UPDATE accounts SET balance = 300 WHERE id = 1;\n⏳ B is waiting for a lock…\n```\n\n*The waiter's tell: a lock row with granted = f — it wants A's transaction id.*\n\n```transcript\nM> SELECT l.locktype, l.mode, l.granted\n   FROM pg_locks l JOIN pg_stat_activity a ON a.pid = l.pid\n   WHERE a.application_name = 'B' AND NOT l.granted;\n   locktype    |   mode    | granted \n---------------+-----------+---------\n transactionid | ShareLock | f       \n(1 row)\n```\n\n*You rarely need to decode pg_locks by hand — pg_blocking_pids() names the culprit.*\n\n```transcript\nM> SELECT waiter.application_name AS waiter, blocker.application_name AS blocker\n   FROM pg_stat_activity waiter\n   JOIN pg_stat_activity blocker ON blocker.pid = ANY (pg_blocking_pids(waiter.pid))\n   WHERE waiter.wait_event_type = 'Lock'\n   ORDER BY waiter.application_name, blocker.application_name;\n waiter | blocker \n--------+---------\n B      | A       \n(1 row)\n\nA> COMMIT;\nCOMMIT\n\n⏵ B resumes:\nUPDATE 1\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/monitoring-locks.yaml)</small>\n\n"	P22	Exact scenarios/postgres/03-locking/monitoring-locks.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01848	base	docs/postgres/03-locking/parts/nowait.md:1	docs/postgres/03-locking/parts/nowait.md#scenario[postgres/03-locking/nowait.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/nowait.yaml — do not edit by hand. -->\n\n```timeline\nA: SELECT … FOR UPDATE (locks row 1)\nB: … FOR UPDATE NOWAIT ← 55P03 could not obtain lock on row in relation \"accounts\"\nA: COMMIT (releases the lock)\nB: … NOWAIT → row 1\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT id FROM accounts WHERE id = 1 FOR UPDATE;\n id \n----\n  1 \n(1 row)\n\nB> SELECT id FROM accounts WHERE id = 1 FOR UPDATE NOWAIT; -- lock_not_available — instantly, no waiting\nERROR:  55P03: could not obtain lock on row in relation \"accounts\"\n```\n\n*Once A is done, the same statement succeeds.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\nB> SELECT id FROM accounts WHERE id = 1 FOR UPDATE NOWAIT;\n id \n----\n  1 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/nowait.yaml)</small>\n"	P23	Exact scenarios/postgres/03-locking/nowait.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/parts/nowait.md#scenario[postgres/03-locking/nowait.yaml].complete-range; semantic decisions A1-A10 in audit report
C01849	base	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].scenario	ledger-field	"postgres/03-locking/nowait.yaml"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].scenario (docs/public/ledger.jsonl:89); current scoped support applies
C01850	base	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].engine	ledger-field	"postgres"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].engine (docs/public/ledger.jsonl:89); current scoped support applies
C01851	base	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].product	ledger-field	"PostgreSQL"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].product (docs/public/ledger.jsonl:89); current scoped support applies
C01852	base	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].version	ledger-field	"18.6"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].version (docs/public/ledger.jsonl:89); current scoped support applies
C01853	base	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].claim	ledger-field	"SELECT ... FOR UPDATE NOWAIT refuses to wait: if the row is locked it fails immediately with SQLSTATE 55P03 instead of joining the lock queue."	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].product; docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].version; docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].errors[0]; semantic decisions A1-A10 in audit report
C01854	base	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].sessions[0]	ledger-field	"A"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].sessions[0] (docs/public/ledger.jsonl:89); current scoped support applies
C01855	base	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].sessions[1]	ledger-field	"B"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].sessions[1] (docs/public/ledger.jsonl:89); current scoped support applies
C01856	base	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].errors[0]	ledger-field	"55P03"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].errors[0] (docs/public/ledger.jsonl:89); current scoped support applies
C01857	base	docs/public/llms-full.txt:6047	docs/public/llms-full.txt#section[postgres/03-locking/nowait.yaml].complete-range	llms-range	"## postgres/03-locking/nowait.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: SELECT ... FOR UPDATE NOWAIT refuses to wait: if the row is locked it fails immediately with SQLSTATE 55P03 instead of joining the lock queue.\n\n```timeline\nA: SELECT … FOR UPDATE (locks row 1)\nB: … FOR UPDATE NOWAIT ← 55P03 could not obtain lock on row in relation \"accounts\"\nA: COMMIT (releases the lock)\nB: … NOWAIT → row 1\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT id FROM accounts WHERE id = 1 FOR UPDATE;\n id \n----\n  1 \n(1 row)\n\nB> SELECT id FROM accounts WHERE id = 1 FOR UPDATE NOWAIT; -- lock_not_available — instantly, no waiting\nERROR:  55P03: could not obtain lock on row in relation \"accounts\"\n```\n\n*Once A is done, the same statement succeeds.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\nB> SELECT id FROM accounts WHERE id = 1 FOR UPDATE NOWAIT;\n id \n----\n  1 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/nowait.yaml)</small>\n\n"	P23	Exact scenarios/postgres/03-locking/nowait.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/03-locking/nowait.yaml].complete-range; semantic decisions A1-A10 in audit report
C01858	current	docs/postgres/03-locking/parts/nowait.md:1	docs/postgres/03-locking/parts/nowait.md#scenario[postgres/03-locking/nowait.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/nowait.yaml — do not edit by hand. -->\n\n```timeline\nA: SELECT … FOR UPDATE (locks row 1)\nB: … FOR UPDATE NOWAIT ← 55P03 could not obtain lock on row in relation \"accounts\"\nA: COMMIT (releases the lock)\nB: … NOWAIT → row 1\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT id FROM accounts WHERE id = 1 FOR UPDATE;\n id \n----\n  1 \n(1 row)\n\nB> SELECT id FROM accounts WHERE id = 1 FOR UPDATE NOWAIT; -- lock_not_available from the conflicting row-lock request\nERROR:  55P03: could not obtain lock on row in relation \"accounts\"\n```\n\n*Once A is done, the same statement succeeds.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\nB> SELECT id FROM accounts WHERE id = 1 FOR UPDATE NOWAIT;\n id \n----\n  1 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/nowait.yaml)</small>\n"	P23	Exact scenarios/postgres/03-locking/nowait.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01859	current	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].scenario	ledger-field	"postgres/03-locking/nowait.yaml"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01860	current	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].engine	ledger-field	"postgres"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01861	current	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].product	ledger-field	"PostgreSQL"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01862	current	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].version	ledger-field	"18.6"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01863	current	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].claim	ledger-field	"B's FOR UPDATE NOWAIT gets 55P03 while A holds a conflicting row lock; after A commits, B's standalone retry returns row 1. NOWAIT concerns row locks and does not eliminate table-lock waits or other errors."	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01864	current	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].sessions[0]	ledger-field	"A"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01865	current	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].sessions[1]	ledger-field	"B"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01866	current	docs/public/ledger.jsonl:89	docs/public/ledger.jsonl#scenario[postgres/03-locking/nowait.yaml].errors[0]	ledger-field	"55P03"	P23	Source scenarios/postgres/03-locking/nowait.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01867	current	docs/public/llms-full.txt:6053	docs/public/llms-full.txt#section[postgres/03-locking/nowait.yaml].complete-range	llms-range	"## postgres/03-locking/nowait.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: B's FOR UPDATE NOWAIT gets 55P03 while A holds a conflicting row lock; after A commits, B's standalone retry returns row 1. NOWAIT concerns row locks and does not eliminate table-lock waits or other errors.\n\n```timeline\nA: SELECT … FOR UPDATE (locks row 1)\nB: … FOR UPDATE NOWAIT ← 55P03 could not obtain lock on row in relation \"accounts\"\nA: COMMIT (releases the lock)\nB: … NOWAIT → row 1\n```\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT id FROM accounts WHERE id = 1 FOR UPDATE;\n id \n----\n  1 \n(1 row)\n\nB> SELECT id FROM accounts WHERE id = 1 FOR UPDATE NOWAIT; -- lock_not_available from the conflicting row-lock request\nERROR:  55P03: could not obtain lock on row in relation \"accounts\"\n```\n\n*Once A is done, the same statement succeeds.*\n\n```transcript\nA> COMMIT;\nCOMMIT\n\nB> SELECT id FROM accounts WHERE id = 1 FOR UPDATE NOWAIT;\n id \n----\n  1 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/nowait.yaml)</small>\n\n"	P23	Exact scenarios/postgres/03-locking/nowait.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01868	base	docs/postgres/03-locking/parts/skip-locked.md:1	docs/postgres/03-locking/parts/skip-locked.md#scenario[postgres/03-locking/skip-locked.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/skip-locked.yaml — do not edit by hand. -->\n\n```timeline\nA: SKIP LOCKED → job 1\nB: SKIP LOCKED → job 2 (skips 1)\nC: SKIP LOCKED → job 3 (skips 1, 2)\nD: SKIP LOCKED → nothing free\nA: ROLLBACK → job 1 back on the queue\nD: SKIP LOCKED → job 1\n```\n\n*Four workers run the exact same query at the same time.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n id |    task    \n----+------------\n  1 | send email \n(1 row)\n\nB> BEGIN;\nBEGIN\n\nB> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED; -- job 1 is locked by A — skipped, no waiting\n id |     task     \n----+--------------\n  2 | resize image \n(1 row)\n\nC> BEGIN;\nBEGIN\n\nC> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n id |     task     \n----+--------------\n  3 | build report \n(1 row)\n```\n\n*Worker D finds the queue empty — an instant answer, not a wait.*\n\n```transcript\nD> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n(0 rows)\n```\n\n*A worker crash (rollback) puts its job straight back on the queue.*\n\n```transcript\nA> ROLLBACK;\nROLLBACK\n\nD> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n id |    task    \n----+------------\n  1 | send email \n(1 row)\n\nB> COMMIT;\nCOMMIT\n\nC> COMMIT;\nCOMMIT\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/skip-locked.yaml)</small>\n"	P24	Exact scenarios/postgres/03-locking/skip-locked.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/03-locking/parts/skip-locked.md#scenario[postgres/03-locking/skip-locked.yaml].complete-range; semantic decisions A1-A10 in audit report
C01869	base	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].scenario	ledger-field	"postgres/03-locking/skip-locked.yaml"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].scenario (docs/public/ledger.jsonl:90); current scoped support applies
C01870	base	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].engine	ledger-field	"postgres"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].engine (docs/public/ledger.jsonl:90); current scoped support applies
C01871	base	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].product	ledger-field	"PostgreSQL"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].product (docs/public/ledger.jsonl:90); current scoped support applies
C01872	base	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].version	ledger-field	"18.6"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].version (docs/public/ledger.jsonl:90); current scoped support applies
C01873	base	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].claim	ledger-field	"SELECT ... FOR UPDATE SKIP LOCKED silently skips locked rows, so concurrent workers each grab a different row without ever waiting — the backbone of Postgres job queues."	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].product; docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].version; docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[2]; docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[3]; docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].errors; semantic decisions A1-A10 in audit report
C01874	base	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[0]	ledger-field	"A"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[0] (docs/public/ledger.jsonl:90); current scoped support applies
C01875	base	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[1]	ledger-field	"B"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[1] (docs/public/ledger.jsonl:90); current scoped support applies
C01876	base	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[2]	ledger-field	"C"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[2] (docs/public/ledger.jsonl:90); current scoped support applies
C01877	base	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[3]	ledger-field	"D"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[3] (docs/public/ledger.jsonl:90); current scoped support applies
C01878	base	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].errors	ledger-field	"[]"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; metadata, not added execution coverage		Generated metadata mirror	Retained at docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].errors (docs/public/ledger.jsonl:90); current scoped support applies
C01879	base	docs/public/llms-full.txt:6088	docs/public/llms-full.txt#section[postgres/03-locking/skip-locked.yaml].complete-range	llms-range	"## postgres/03-locking/skip-locked.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: SELECT ... FOR UPDATE SKIP LOCKED silently skips locked rows, so concurrent workers each grab a different row without ever waiting — the backbone of Postgres job queues.\n\n```timeline\nA: SKIP LOCKED → job 1\nB: SKIP LOCKED → job 2 (skips 1)\nC: SKIP LOCKED → job 3 (skips 1, 2)\nD: SKIP LOCKED → nothing free\nA: ROLLBACK → job 1 back on the queue\nD: SKIP LOCKED → job 1\n```\n\n*Four workers run the exact same query at the same time.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n id |    task    \n----+------------\n  1 | send email \n(1 row)\n\nB> BEGIN;\nBEGIN\n\nB> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED; -- job 1 is locked by A — skipped, no waiting\n id |     task     \n----+--------------\n  2 | resize image \n(1 row)\n\nC> BEGIN;\nBEGIN\n\nC> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n id |     task     \n----+--------------\n  3 | build report \n(1 row)\n```\n\n*Worker D finds the queue empty — an instant answer, not a wait.*\n\n```transcript\nD> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n(0 rows)\n```\n\n*A worker crash (rollback) puts its job straight back on the queue.*\n\n```transcript\nA> ROLLBACK;\nROLLBACK\n\nD> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n id |    task    \n----+------------\n  1 | send email \n(1 row)\n\nB> COMMIT;\nCOMMIT\n\nC> COMMIT;\nCOMMIT\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/skip-locked.yaml)</small>\n\n"	P24	Exact scenarios/postgres/03-locking/skip-locked.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/03-locking/skip-locked.yaml].complete-range; semantic decisions A1-A10 in audit report
C01880	current	docs/postgres/03-locking/parts/skip-locked.md:1	docs/postgres/03-locking/parts/skip-locked.md#scenario[postgres/03-locking/skip-locked.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/03-locking/skip-locked.yaml — do not edit by hand. -->\n\n```timeline\nA: SKIP LOCKED → job 1\nB: SKIP LOCKED → job 2 (skips 1)\nC: SKIP LOCKED → job 3 (skips 1, 2)\nD: SKIP LOCKED → nothing free\nA: ROLLBACK → job 1 back on the queue\nD: SKIP LOCKED → job 1\n```\n\n*Four sessions run the same query in the listed order with overlapping transactions.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n id |    task    \n----+------------\n  1 | send email \n(1 row)\n\nB> BEGIN;\nBEGIN\n\nB> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED; -- job 1 is locked by A — skipped, no waiting\n id |     task     \n----+--------------\n  2 | resize image \n(1 row)\n\nC> BEGIN;\nBEGIN\n\nC> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n id |     task     \n----+--------------\n  3 | build report \n(1 row)\n```\n\n*D finds no lockable row in this query; three rows still exist.*\n\n```transcript\nD> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n(0 rows)\n```\n\n*Explicit ROLLBACK releases A's row lock; a process crash is not injected.*\n\n```transcript\nA> ROLLBACK;\nROLLBACK\n\nD> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n id |    task    \n----+------------\n  1 | send email \n(1 row)\n\nB> COMMIT;\nCOMMIT\n\nC> COMMIT;\nCOMMIT\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/skip-locked.yaml)</small>\n"	P24	Exact scenarios/postgres/03-locking/skip-locked.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01881	current	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].scenario	ledger-field	"postgres/03-locking/skip-locked.yaml"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01882	current	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].engine	ledger-field	"postgres"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01883	current	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].product	ledger-field	"PostgreSQL"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01884	current	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].version	ledger-field	"18.6"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01885	current	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].claim	ledger-field	"In overlapping transactions, the scheduled FOR UPDATE SKIP LOCKED reads return jobs 1, 2 and 3, then no available row. After A explicitly rolls back, D reads job 1 again. No external execution or universal no-wait guarantee is established."	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01886	current	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[0]	ledger-field	"A"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01887	current	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[1]	ledger-field	"B"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01888	current	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[2]	ledger-field	"C"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01889	current	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].sessions[3]	ledger-field	"D"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01890	current	docs/public/ledger.jsonl:90	docs/public/ledger.jsonl#scenario[postgres/03-locking/skip-locked.yaml].errors	ledger-field	"[]"	P24	Source scenarios/postgres/03-locking/skip-locked.yaml; metadata, not added execution coverage		Generated metadata mirror	Resolved: scoped current Generated metadata mirror
C01891	current	docs/public/llms-full.txt:6094	docs/public/llms-full.txt#section[postgres/03-locking/skip-locked.yaml].complete-range	llms-range	"## postgres/03-locking/skip-locked.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: In overlapping transactions, the scheduled FOR UPDATE SKIP LOCKED reads return jobs 1, 2 and 3, then no available row. After A explicitly rolls back, D reads job 1 again. No external execution or universal no-wait guarantee is established.\n\n```timeline\nA: SKIP LOCKED → job 1\nB: SKIP LOCKED → job 2 (skips 1)\nC: SKIP LOCKED → job 3 (skips 1, 2)\nD: SKIP LOCKED → nothing free\nA: ROLLBACK → job 1 back on the queue\nD: SKIP LOCKED → job 1\n```\n\n*Four sessions run the same query in the listed order with overlapping transactions.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n id |    task    \n----+------------\n  1 | send email \n(1 row)\n\nB> BEGIN;\nBEGIN\n\nB> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED; -- job 1 is locked by A — skipped, no waiting\n id |     task     \n----+--------------\n  2 | resize image \n(1 row)\n\nC> BEGIN;\nBEGIN\n\nC> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n id |     task     \n----+--------------\n  3 | build report \n(1 row)\n```\n\n*D finds no lockable row in this query; three rows still exist.*\n\n```transcript\nD> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n(0 rows)\n```\n\n*Explicit ROLLBACK releases A's row lock; a process crash is not injected.*\n\n```transcript\nA> ROLLBACK;\nROLLBACK\n\nD> SELECT * FROM jobs ORDER BY id LIMIT 1 FOR UPDATE SKIP LOCKED;\n id |    task    \n----+------------\n  1 | send email \n(1 row)\n\nB> COMMIT;\nCOMMIT\n\nC> COMMIT;\nCOMMIT\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/03-locking/skip-locked.yaml)</small>\n\n"	P24	Exact scenarios/postgres/03-locking/skip-locked.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01892	base	docs/postgres/04-mvcc/parts/dead-tuples-and-bloat.md:1	docs/postgres/04-mvcc/parts/dead-tuples-and-bloat.md#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml — do not edit by hand. -->\n\n```transcript\nA> INSERT INTO counters VALUES (1, 0) RETURNING xmin, n;\n xmin | n \n------+---\n 1001 | 0 \n(1 row)\n```\n\n*Three updates to one row. Watch each one get a fresh xid — and leave a corpse.*\n\n```transcript\nA> UPDATE counters SET n = 1 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1002 | 1 \n(1 row)\n\nA> UPDATE counters SET n = 2 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1003 | 2 \n(1 row)\n\nA> UPDATE counters SET n = 3 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1004 | 3 \n(1 row)\n```\n\n*SELECT sees one row. The page holds four tuples — a version chain, three of them dead.*\n\n```transcript\nA> SELECT n FROM counters;\n n \n---\n 3 \n(1 row)\n\nA> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('counters', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,3)  \n  3 |   1003 |   1004 | (0,4)  \n  4 |   1004 |      0 | (0,4)  \n(4 rows)\n```\n\n*The same effect at scale: 1000 rows fit in 5 pages of 8 kB.*\n\n```transcript\nA> INSERT INTO bloat SELECT g, 'x' FROM generate_series(1, 1000) g;\nINSERT 0 1000\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     5 \n(1 row)\n```\n\n*One UPDATE of every row = a full second copy of the table.*\n\n```transcript\nA> UPDATE bloat SET filler = 'y';\nUPDATE 1000\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n```\n\n*Now delete everything. Zero rows — and not a single byte returned.*\n\n```transcript\nA> DELETE FROM bloat;\nDELETE 1000\n\nA> SELECT count(*)::int AS live_rows FROM bloat;\n live_rows \n-----------\n         0 \n(1 row)\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml)</small>\n"	P25	Exact scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/parts/dead-tuples-and-bloat.md#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].complete-range; semantic decisions A1-A10 in audit report
C01893	base	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].scenario	ledger-field	"postgres/04-mvcc/dead-tuples-and-bloat.yaml"	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].scenario (docs/public/ledger.jsonl:91); current scoped support applies
C01894	base	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].engine	ledger-field	"postgres"	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].engine (docs/public/ledger.jsonl:91); current scoped support applies
C01895	base	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].product	ledger-field	"PostgreSQL"	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].product (docs/public/ledger.jsonl:91); current scoped support applies
C01896	base	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].version	ledger-field	"18.6"	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].version (docs/public/ledger.jsonl:91); current scoped support applies
C01897	base	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].claim	ledger-field	"Every UPDATE leaves a dead tuple behind and every DELETE leaves the row on disk — so a table's file only ever grows, no matter how much data you delete."	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].product; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].version; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].errors; semantic decisions A1-A10 in audit report
C01898	base	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].sessions[0]	ledger-field	"A"	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].sessions[0] (docs/public/ledger.jsonl:91); current scoped support applies
C01899	base	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].errors	ledger-field	"[]"	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; metadata, not added execution coverage		Generated metadata mirror	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].errors (docs/public/ledger.jsonl:91); current scoped support applies
C01900	base	docs/public/llms-full.txt:6161	docs/public/llms-full.txt#section[postgres/04-mvcc/dead-tuples-and-bloat.yaml].complete-range	llms-range	"## postgres/04-mvcc/dead-tuples-and-bloat.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: Every UPDATE leaves a dead tuple behind and every DELETE leaves the row on disk — so a table's file only ever grows, no matter how much data you delete.\n\n```transcript\nA> INSERT INTO counters VALUES (1, 0) RETURNING xmin, n;\n xmin | n \n------+---\n 1001 | 0 \n(1 row)\n```\n\n*Three updates to one row. Watch each one get a fresh xid — and leave a corpse.*\n\n```transcript\nA> UPDATE counters SET n = 1 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1002 | 1 \n(1 row)\n\nA> UPDATE counters SET n = 2 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1003 | 2 \n(1 row)\n\nA> UPDATE counters SET n = 3 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1004 | 3 \n(1 row)\n```\n\n*SELECT sees one row. The page holds four tuples — a version chain, three of them dead.*\n\n```transcript\nA> SELECT n FROM counters;\n n \n---\n 3 \n(1 row)\n\nA> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('counters', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,3)  \n  3 |   1003 |   1004 | (0,4)  \n  4 |   1004 |      0 | (0,4)  \n(4 rows)\n```\n\n*The same effect at scale: 1000 rows fit in 5 pages of 8 kB.*\n\n```transcript\nA> INSERT INTO bloat SELECT g, 'x' FROM generate_series(1, 1000) g;\nINSERT 0 1000\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     5 \n(1 row)\n```\n\n*One UPDATE of every row = a full second copy of the table.*\n\n```transcript\nA> UPDATE bloat SET filler = 'y';\nUPDATE 1000\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n```\n\n*Now delete everything. Zero rows — and not a single byte returned.*\n\n```transcript\nA> DELETE FROM bloat;\nDELETE 1000\n\nA> SELECT count(*)::int AS live_rows FROM bloat;\n live_rows \n-----------\n         0 \n(1 row)\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml)</small>\n\n"	P25	Exact scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/04-mvcc/dead-tuples-and-bloat.yaml].complete-range; semantic decisions A1-A10 in audit report
C01901	current	docs/postgres/04-mvcc/parts/dead-tuples-and-bloat.md:1	docs/postgres/04-mvcc/parts/dead-tuples-and-bloat.md#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml — do not edit by hand. -->\n\n```transcript\nA> INSERT INTO counters VALUES (1, 0) RETURNING xmin, n;\n xmin | n \n------+---\n 1001 | 0 \n(1 row)\n```\n\n*Three updates to one row. Watch each one get a fresh xid — and leave a corpse.*\n\n```transcript\nA> UPDATE counters SET n = 1 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1002 | 1 \n(1 row)\n\nA> UPDATE counters SET n = 2 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1003 | 2 \n(1 row)\n\nA> UPDATE counters SET n = 3 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1004 | 3 \n(1 row)\n```\n\n*SELECT sees one row. The page holds four tuples — a version chain, three of them dead.*\n\n```transcript\nA> SELECT n FROM counters;\n n \n---\n 3 \n(1 row)\n\nA> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('counters', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,3)  \n  3 |   1003 |   1004 | (0,4)  \n  4 |   1004 |      0 | (0,4)  \n(4 rows)\n```\n\n*The same effect at scale: 1000 rows fit in 5 pages of 8 kB.*\n\n```transcript\nA> INSERT INTO bloat SELECT g, 'x' FROM generate_series(1, 1000) g;\nINSERT 0 1000\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     5 \n(1 row)\n```\n\n*This UPDATE of all 1000 rows grows the heap from 5 to 9 pages, not an exact doubling.*\n\n```transcript\nA> UPDATE bloat SET filler = 'y';\nUPDATE 1000\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n```\n\n*Now delete everything. Zero rows — and not a single byte returned.*\n\n```transcript\nA> DELETE FROM bloat;\nDELETE 1000\n\nA> SELECT count(*)::int AS live_rows FROM bloat;\n live_rows \n-----------\n         0 \n(1 row)\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml)</small>\n"	P25	Exact scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01902	current	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].scenario	ledger-field	"postgres/04-mvcc/dead-tuples-and-bloat.yaml"	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01903	current	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].engine	ledger-field	"postgres"	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01904	current	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].product	ledger-field	"PostgreSQL"	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01905	current	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].version	ledger-field	"18.6"	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01906	current	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].claim	ledger-field	"In this setup three updates leave four inspected tuple versions and one live value. Updating 1000 rows grows the heap from 5 to 9 pages; deleting them leaves zero live rows and 9 pages at the next observation. Reuse, pruning and vacuum can change later size."	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01907	current	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].sessions[0]	ledger-field	"A"	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01908	current	docs/public/ledger.jsonl:91	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/dead-tuples-and-bloat.yaml].errors	ledger-field	"[]"	P25	Source scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml; metadata, not added execution coverage		Generated metadata mirror	Resolved: scoped current Generated metadata mirror
C01909	current	docs/public/llms-full.txt:6167	docs/public/llms-full.txt#section[postgres/04-mvcc/dead-tuples-and-bloat.yaml].complete-range	llms-range	"## postgres/04-mvcc/dead-tuples-and-bloat.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: In this setup three updates leave four inspected tuple versions and one live value. Updating 1000 rows grows the heap from 5 to 9 pages; deleting them leaves zero live rows and 9 pages at the next observation. Reuse, pruning and vacuum can change later size.\n\n```transcript\nA> INSERT INTO counters VALUES (1, 0) RETURNING xmin, n;\n xmin | n \n------+---\n 1001 | 0 \n(1 row)\n```\n\n*Three updates to one row. Watch each one get a fresh xid — and leave a corpse.*\n\n```transcript\nA> UPDATE counters SET n = 1 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1002 | 1 \n(1 row)\n\nA> UPDATE counters SET n = 2 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1003 | 2 \n(1 row)\n\nA> UPDATE counters SET n = 3 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1004 | 3 \n(1 row)\n```\n\n*SELECT sees one row. The page holds four tuples — a version chain, three of them dead.*\n\n```transcript\nA> SELECT n FROM counters;\n n \n---\n 3 \n(1 row)\n\nA> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('counters', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,3)  \n  3 |   1003 |   1004 | (0,4)  \n  4 |   1004 |      0 | (0,4)  \n(4 rows)\n```\n\n*The same effect at scale: 1000 rows fit in 5 pages of 8 kB.*\n\n```transcript\nA> INSERT INTO bloat SELECT g, 'x' FROM generate_series(1, 1000) g;\nINSERT 0 1000\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     5 \n(1 row)\n```\n\n*This UPDATE of all 1000 rows grows the heap from 5 to 9 pages, not an exact doubling.*\n\n```transcript\nA> UPDATE bloat SET filler = 'y';\nUPDATE 1000\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n```\n\n*Now delete everything. Zero rows — and not a single byte returned.*\n\n```transcript\nA> DELETE FROM bloat;\nDELETE 1000\n\nA> SELECT count(*)::int AS live_rows FROM bloat;\n live_rows \n-----------\n         0 \n(1 row)\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml)</small>\n\n"	P25	Exact scenarios/postgres/04-mvcc/dead-tuples-and-bloat.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01910	base	docs/postgres/04-mvcc/parts/long-transactions.md:1	docs/postgres/04-mvcc/parts/long-transactions.md#scenario[postgres/04-mvcc/long-transactions.ts].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/04-mvcc/long-transactions.ts — do not edit by hand. -->\n\n*A opens a long report transaction — one query, then it sits there idle.*\n\n```transcript\nA> BEGIN ISOLATION LEVEL REPEATABLE READ;\nBEGIN\n\nA> SELECT xmin, id, status FROM jobs;\n xmin | id | status \n------+----+--------\n 1001 |  1 | new    \n(1 row)\n```\n\n*Meanwhile B churns through the row, leaving dead versions behind.*\n\n```transcript\nB> UPDATE jobs SET status = 'running' WHERE id = 1 RETURNING xmin, status;\n xmin | status  \n------+---------\n 1002 | running \n(1 row)\n\nB> UPDATE jobs SET status = 'done' WHERE id = 1 RETURNING xmin, status;\n xmin | status \n------+--------\n 1003 | done   \n(1 row)\n\nB> UPDATE jobs SET status = 'archived' WHERE id = 1 RETURNING xmin, status;\n xmin |  status  \n------+----------\n 1004 | archived \n(1 row)\n\nB> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,3)  \n  3 |   1003 |   1004 | (0,4)  \n  4 |   1004 |      0 | (0,4)  \n(4 rows)\n\nB> VACUUM jobs;\nVACUUM\n```\n\n*VACUUM ran, reported success — and removed nothing. A's snapshot might still need every one of those versions.*\n\n```transcript\nB> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,3)  \n  3 |   1003 |   1004 | (0,4)  \n  4 |   1004 |      0 | (0,4)  \n(4 rows)\n```\n\n*And indeed: A still reads the version from before all three updates.*\n\n```transcript\nA> SELECT id, status FROM jobs;\n id | status \n----+--------\n  1 | new    \n(1 row)\n\nA> COMMIT;\nCOMMIT\n\nB> VACUUM jobs;\nVACUUM\n```\n\n*Same command, a moment after A commits — now the three dead versions are gone.*\n\n```transcript\nB> SELECT lp, lp_flags, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp;\n lp | lp_flags | t_xmin | t_xmax | t_ctid \n----+----------+--------+--------+--------\n  1 |        2 |        |        |        \n  2 |        0 |        |        |        \n  3 |        0 |        |        |        \n  4 |        1 |   1004 |      0 | (0,4)  \n(4 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/long-transactions.ts)</small>\n"	P26	Exact scenarios/postgres/04-mvcc/long-transactions.ts schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/parts/long-transactions.md#scenario[postgres/04-mvcc/long-transactions.ts].complete-range; semantic decisions A1-A10 in audit report
C01911	base	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].scenario	ledger-field	"postgres/04-mvcc/long-transactions.ts"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].scenario (docs/public/ledger.jsonl:92); current scoped support applies
C01912	base	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].engine	ledger-field	"postgres"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].engine (docs/public/ledger.jsonl:92); current scoped support applies
C01913	base	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].product	ledger-field	"PostgreSQL"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].product (docs/public/ledger.jsonl:92); current scoped support applies
C01914	base	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].version	ledger-field	"18.6"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].version (docs/public/ledger.jsonl:92); current scoped support applies
C01915	base	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].claim	ledger-field	"VACUUM can only remove tuples no snapshot can still see — one long-running transaction holds the horizon back for every table, and VACUUM silently reclaims nothing until it ends."	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].scenario; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].engine; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].product; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].version; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].claim; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].errors; semantic decisions A1-A10 in audit report
C01916	base	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].sessions[0]	ledger-field	"A"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].sessions[0] (docs/public/ledger.jsonl:92); current scoped support applies
C01917	base	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].sessions[1]	ledger-field	"B"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].sessions[1] (docs/public/ledger.jsonl:92); current scoped support applies
C01918	base	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].errors	ledger-field	"[]"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; metadata, not added execution coverage		Generated metadata mirror	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].errors (docs/public/ledger.jsonl:92); current scoped support applies
C01919	base	docs/public/llms-full.txt:6263	docs/public/llms-full.txt#section[postgres/04-mvcc/long-transactions.ts].complete-range	llms-range	"## postgres/04-mvcc/long-transactions.ts\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: VACUUM can only remove tuples no snapshot can still see — one long-running transaction holds the horizon back for every table, and VACUUM silently reclaims nothing until it ends.\n\n*A opens a long report transaction — one query, then it sits there idle.*\n\n```transcript\nA> BEGIN ISOLATION LEVEL REPEATABLE READ;\nBEGIN\n\nA> SELECT xmin, id, status FROM jobs;\n xmin | id | status \n------+----+--------\n 1001 |  1 | new    \n(1 row)\n```\n\n*Meanwhile B churns through the row, leaving dead versions behind.*\n\n```transcript\nB> UPDATE jobs SET status = 'running' WHERE id = 1 RETURNING xmin, status;\n xmin | status  \n------+---------\n 1002 | running \n(1 row)\n\nB> UPDATE jobs SET status = 'done' WHERE id = 1 RETURNING xmin, status;\n xmin | status \n------+--------\n 1003 | done   \n(1 row)\n\nB> UPDATE jobs SET status = 'archived' WHERE id = 1 RETURNING xmin, status;\n xmin |  status  \n------+----------\n 1004 | archived \n(1 row)\n\nB> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,3)  \n  3 |   1003 |   1004 | (0,4)  \n  4 |   1004 |      0 | (0,4)  \n(4 rows)\n\nB> VACUUM jobs;\nVACUUM\n```\n\n*VACUUM ran, reported success — and removed nothing. A's snapshot might still need every one of those versions.*\n\n```transcript\nB> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,3)  \n  3 |   1003 |   1004 | (0,4)  \n  4 |   1004 |      0 | (0,4)  \n(4 rows)\n```\n\n*And indeed: A still reads the version from before all three updates.*\n\n```transcript\nA> SELECT id, status FROM jobs;\n id | status \n----+--------\n  1 | new    \n(1 row)\n\nA> COMMIT;\nCOMMIT\n\nB> VACUUM jobs;\nVACUUM\n```\n\n*Same command, a moment after A commits — now the three dead versions are gone.*\n\n```transcript\nB> SELECT lp, lp_flags, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp;\n lp | lp_flags | t_xmin | t_xmax | t_ctid \n----+----------+--------+--------+--------\n  1 |        2 |        |        |        \n  2 |        0 |        |        |        \n  3 |        0 |        |        |        \n  4 |        1 |   1004 |      0 | (0,4)  \n(4 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/long-transactions.ts)</small>\n\n"	P26	Exact scenarios/postgres/04-mvcc/long-transactions.ts schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/04-mvcc/long-transactions.ts].complete-range; semantic decisions A1-A10 in audit report
C01920	current	docs/postgres/04-mvcc/parts/long-transactions.md:1	docs/postgres/04-mvcc/parts/long-transactions.md#scenario[postgres/04-mvcc/long-transactions.ts].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/04-mvcc/long-transactions.ts — do not edit by hand. -->\n\n*A opens a long report transaction — one query, then it sits there idle.*\n\n```transcript\nA> BEGIN ISOLATION LEVEL REPEATABLE READ;\nBEGIN\n\nA> SELECT xmin, id, status FROM jobs;\n xmin | id | status \n------+----+--------\n 1001 |  1 | new    \n(1 row)\n```\n\n*Meanwhile B churns through the row, leaving dead versions behind.*\n\n```transcript\nB> UPDATE jobs SET status = 'running' WHERE id = 1 RETURNING xmin, status;\n xmin | status  \n------+---------\n 1002 | running \n(1 row)\n\nB> UPDATE jobs SET status = 'done' WHERE id = 1 RETURNING xmin, status;\n xmin | status \n------+--------\n 1003 | done   \n(1 row)\n\nB> UPDATE jobs SET status = 'archived' WHERE id = 1 RETURNING xmin, status;\n xmin |  status  \n------+----------\n 1004 | archived \n(1 row)\n\nB> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,3)  \n  3 |   1003 |   1004 | (0,4)  \n  4 |   1004 |      0 | (0,4)  \n(4 rows)\n\nB> VACUUM jobs;\nVACUUM\n```\n\n*VACUUM completed. The following assertion checks unchanged tuple-chain fields while A retains its old snapshot.*\n\n```transcript\nB> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,3)  \n  3 |   1003 |   1004 | (0,4)  \n  4 |   1004 |      0 | (0,4)  \n(4 rows)\n```\n\n*And indeed: A still reads the version from before all three updates.*\n\n```transcript\nA> SELECT id, status FROM jobs;\n id | status \n----+--------\n  1 | new    \n(1 row)\n\nA> COMMIT;\nCOMMIT\n\nB> VACUUM jobs;\nVACUUM\n```\n\n*Same command, a moment after A commits — now the three dead versions are gone.*\n\n```transcript\nB> SELECT lp, lp_flags, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp;\n lp | lp_flags | t_xmin | t_xmax | t_ctid \n----+----------+--------+--------+--------\n  1 |        2 |        |        |        \n  2 |        0 |        |        |        \n  3 |        0 |        |        |        \n  4 |        1 |   1004 |      0 | (0,4)  \n(4 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/long-transactions.ts)</small>\n"	P26	Exact scenarios/postgres/04-mvcc/long-transactions.ts schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01921	current	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].scenario	ledger-field	"postgres/04-mvcc/long-transactions.ts"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01922	current	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].engine	ledger-field	"postgres"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01923	current	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].product	ledger-field	"PostgreSQL"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01924	current	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].version	ledger-field	"18.6"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01925	current	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].claim	ledger-field	"With A holding an old Repeatable Read snapshot, VACUUM leaves the inspected jobs tuple-chain fields unchanged and A still reads new. After A commits, a second VACUUM reclaims the three obsolete versions. Other tables and other VACUUM work are not observed."	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01926	current	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].sessions[0]	ledger-field	"A"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01927	current	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].sessions[1]	ledger-field	"B"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01928	current	docs/public/ledger.jsonl:92	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/long-transactions.ts].errors	ledger-field	"[]"	P26	Source scenarios/postgres/04-mvcc/long-transactions.ts; metadata, not added execution coverage		Generated metadata mirror	Resolved: scoped current Generated metadata mirror
C01929	current	docs/public/llms-full.txt:6269	docs/public/llms-full.txt#section[postgres/04-mvcc/long-transactions.ts].complete-range	llms-range	"## postgres/04-mvcc/long-transactions.ts\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: With A holding an old Repeatable Read snapshot, VACUUM leaves the inspected jobs tuple-chain fields unchanged and A still reads new. After A commits, a second VACUUM reclaims the three obsolete versions. Other tables and other VACUUM work are not observed.\n\n*A opens a long report transaction — one query, then it sits there idle.*\n\n```transcript\nA> BEGIN ISOLATION LEVEL REPEATABLE READ;\nBEGIN\n\nA> SELECT xmin, id, status FROM jobs;\n xmin | id | status \n------+----+--------\n 1001 |  1 | new    \n(1 row)\n```\n\n*Meanwhile B churns through the row, leaving dead versions behind.*\n\n```transcript\nB> UPDATE jobs SET status = 'running' WHERE id = 1 RETURNING xmin, status;\n xmin | status  \n------+---------\n 1002 | running \n(1 row)\n\nB> UPDATE jobs SET status = 'done' WHERE id = 1 RETURNING xmin, status;\n xmin | status \n------+--------\n 1003 | done   \n(1 row)\n\nB> UPDATE jobs SET status = 'archived' WHERE id = 1 RETURNING xmin, status;\n xmin |  status  \n------+----------\n 1004 | archived \n(1 row)\n\nB> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,3)  \n  3 |   1003 |   1004 | (0,4)  \n  4 |   1004 |      0 | (0,4)  \n(4 rows)\n\nB> VACUUM jobs;\nVACUUM\n```\n\n*VACUUM completed. The following assertion checks unchanged tuple-chain fields while A retains its old snapshot.*\n\n```transcript\nB> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,3)  \n  3 |   1003 |   1004 | (0,4)  \n  4 |   1004 |      0 | (0,4)  \n(4 rows)\n```\n\n*And indeed: A still reads the version from before all three updates.*\n\n```transcript\nA> SELECT id, status FROM jobs;\n id | status \n----+--------\n  1 | new    \n(1 row)\n\nA> COMMIT;\nCOMMIT\n\nB> VACUUM jobs;\nVACUUM\n```\n\n*Same command, a moment after A commits — now the three dead versions are gone.*\n\n```transcript\nB> SELECT lp, lp_flags, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('jobs', 0)) ORDER BY lp;\n lp | lp_flags | t_xmin | t_xmax | t_ctid \n----+----------+--------+--------+--------\n  1 |        2 |        |        |        \n  2 |        0 |        |        |        \n  3 |        0 |        |        |        \n  4 |        1 |   1004 |      0 | (0,4)  \n(4 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/long-transactions.ts)</small>\n\n"	P26	Exact scenarios/postgres/04-mvcc/long-transactions.ts schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01930	base	docs/postgres/04-mvcc/parts/row-versions.md:1	docs/postgres/04-mvcc/parts/row-versions.md#scenario[postgres/04-mvcc/row-versions.ts].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/04-mvcc/row-versions.ts — do not edit by hand. -->\n\n*Every row carries hidden system columns: xmin = the transaction that created this version, xmax = the one that deleted or replaced it (0 = nobody yet), ctid = its physical address (page, slot).*\n\n```transcript\nA> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1001 |    0 | (0,1) |     100 \n(1 row)\n\nB> BEGIN ISOLATION LEVEL REPEATABLE READ;\nBEGIN\n\nB> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1001 |    0 | (0,1) |     100 \n(1 row)\n```\n\n*A's UPDATE doesn't touch that version — it writes a brand-new one at a new ctid.*\n\n```transcript\nA> UPDATE accounts SET balance = 200 WHERE id = 1\n   RETURNING xmin, xmax, ctid, balance;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1002 |    0 | (0,2) |     200 \n(1 row)\n```\n\n*B still reads the old version — but its xmax is no longer 0: A's xid is stamped on it.*\n\n```transcript\nB> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1001 | 1002 | (0,1) |     100 \n(1 row)\n\nB> COMMIT;\nCOMMIT\n\nB> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1002 |    0 | (0,2) |     200 \n(1 row)\n```\n\n*pageinspect shows both versions physically on page 0 — the old one points at its successor.*\n\n```transcript\nA> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('accounts', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |      0 | (0,2)  \n(2 rows)\n```\n\n*DELETE doesn't erase anything either — it only stamps xmax on the current version.*\n\n```transcript\nA> DELETE FROM accounts WHERE id = 1 RETURNING xmin, xmax, ctid;\n xmin | xmax | ctid  \n------+------+-------\n 1002 | 1003 | (0,2) \n(1 row)\n\nA> SELECT count(*)::int AS live_rows FROM accounts;\n live_rows \n-----------\n         0 \n(1 row)\n```\n\n*Zero rows for SELECT — yet both versions are still on disk, awaiting VACUUM.*\n\n```transcript\nA> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('accounts', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,2)  \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/row-versions.ts)</small>\n"	P27	Exact scenarios/postgres/04-mvcc/row-versions.ts schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/parts/row-versions.md#scenario[postgres/04-mvcc/row-versions.ts].complete-range; semantic decisions A1-A10 in audit report
C01931	base	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].scenario	ledger-field	"postgres/04-mvcc/row-versions.ts"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].scenario (docs/public/ledger.jsonl:93); current scoped support applies
C01932	base	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].engine	ledger-field	"postgres"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].engine (docs/public/ledger.jsonl:93); current scoped support applies
C01933	base	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].product	ledger-field	"PostgreSQL"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].product (docs/public/ledger.jsonl:93); current scoped support applies
C01934	base	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].version	ledger-field	"18.6"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].version (docs/public/ledger.jsonl:93); current scoped support applies
C01935	base	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].claim	ledger-field	"UPDATE never modifies a row in place — it writes a new version stamped with its xid (xmin) and stamps the old one's xmax; DELETE only stamps xmax. Both versions stay on disk, visible with pageinspect."	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].scenario; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].engine; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].product; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].version; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].claim; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].errors; semantic decisions A1-A10 in audit report
C01936	base	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].sessions[0]	ledger-field	"A"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].sessions[0] (docs/public/ledger.jsonl:93); current scoped support applies
C01937	base	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].sessions[1]	ledger-field	"B"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].sessions[1] (docs/public/ledger.jsonl:93); current scoped support applies
C01938	base	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].errors	ledger-field	"[]"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; metadata, not added execution coverage		Generated metadata mirror	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].errors (docs/public/ledger.jsonl:93); current scoped support applies
C01939	base	docs/public/llms-full.txt:6362	docs/public/llms-full.txt#section[postgres/04-mvcc/row-versions.ts].complete-range	llms-range	"## postgres/04-mvcc/row-versions.ts\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: UPDATE never modifies a row in place — it writes a new version stamped with its xid (xmin) and stamps the old one's xmax; DELETE only stamps xmax. Both versions stay on disk, visible with pageinspect.\n\n*Every row carries hidden system columns: xmin = the transaction that created this version, xmax = the one that deleted or replaced it (0 = nobody yet), ctid = its physical address (page, slot).*\n\n```transcript\nA> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1001 |    0 | (0,1) |     100 \n(1 row)\n\nB> BEGIN ISOLATION LEVEL REPEATABLE READ;\nBEGIN\n\nB> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1001 |    0 | (0,1) |     100 \n(1 row)\n```\n\n*A's UPDATE doesn't touch that version — it writes a brand-new one at a new ctid.*\n\n```transcript\nA> UPDATE accounts SET balance = 200 WHERE id = 1\n   RETURNING xmin, xmax, ctid, balance;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1002 |    0 | (0,2) |     200 \n(1 row)\n```\n\n*B still reads the old version — but its xmax is no longer 0: A's xid is stamped on it.*\n\n```transcript\nB> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1001 | 1002 | (0,1) |     100 \n(1 row)\n\nB> COMMIT;\nCOMMIT\n\nB> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1002 |    0 | (0,2) |     200 \n(1 row)\n```\n\n*pageinspect shows both versions physically on page 0 — the old one points at its successor.*\n\n```transcript\nA> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('accounts', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |      0 | (0,2)  \n(2 rows)\n```\n\n*DELETE doesn't erase anything either — it only stamps xmax on the current version.*\n\n```transcript\nA> DELETE FROM accounts WHERE id = 1 RETURNING xmin, xmax, ctid;\n xmin | xmax | ctid  \n------+------+-------\n 1002 | 1003 | (0,2) \n(1 row)\n\nA> SELECT count(*)::int AS live_rows FROM accounts;\n live_rows \n-----------\n         0 \n(1 row)\n```\n\n*Zero rows for SELECT — yet both versions are still on disk, awaiting VACUUM.*\n\n```transcript\nA> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('accounts', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,2)  \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/row-versions.ts)</small>\n\n"	P27	Exact scenarios/postgres/04-mvcc/row-versions.ts schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/04-mvcc/row-versions.ts].complete-range; semantic decisions A1-A10 in audit report
C01940	current	docs/postgres/04-mvcc/parts/row-versions.md:1	docs/postgres/04-mvcc/parts/row-versions.md#scenario[postgres/04-mvcc/row-versions.ts].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/04-mvcc/row-versions.ts — do not edit by hand. -->\n\n*Inspect this tuple version: xmin identifies its inserting transaction, ctid its physical location. xmax can record deletion or row locking; this schedule follows the update/delete case.*\n\n```transcript\nA> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1001 |    0 | (0,1) |     100 \n(1 row)\n\nB> BEGIN ISOLATION LEVEL REPEATABLE READ;\nBEGIN\n\nB> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1001 |    0 | (0,1) |     100 \n(1 row)\n```\n\n*A's UPDATE creates a new tuple version and changes the old version's xmax and successor pointer.*\n\n```transcript\nA> UPDATE accounts SET balance = 200 WHERE id = 1\n   RETURNING xmin, xmax, ctid, balance;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1002 |    0 | (0,2) |     200 \n(1 row)\n```\n\n*B still reads the old version — but its xmax is no longer 0: A's xid is stamped on it.*\n\n```transcript\nB> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1001 | 1002 | (0,1) |     100 \n(1 row)\n\nB> COMMIT;\nCOMMIT\n\nB> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1002 |    0 | (0,2) |     200 \n(1 row)\n```\n\n*pageinspect shows both versions physically on page 0 — the old one points at its successor.*\n\n```transcript\nA> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('accounts', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |      0 | (0,2)  \n(2 rows)\n```\n\n*DELETE marks the current version deleted; the following page inspection checks that its tuple body remains here.*\n\n```transcript\nA> DELETE FROM accounts WHERE id = 1 RETURNING xmin, xmax, ctid;\n xmin | xmax | ctid  \n------+------+-------\n 1002 | 1003 | (0,2) \n(1 row)\n\nA> SELECT count(*)::int AS live_rows FROM accounts;\n live_rows \n-----------\n         0 \n(1 row)\n```\n\n*Zero rows for SELECT — yet both versions are still on disk, awaiting VACUUM.*\n\n```transcript\nA> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('accounts', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,2)  \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/row-versions.ts)</small>\n"	P27	Exact scenarios/postgres/04-mvcc/row-versions.ts schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01941	current	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].scenario	ledger-field	"postgres/04-mvcc/row-versions.ts"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01942	current	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].engine	ledger-field	"postgres"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01943	current	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].product	ledger-field	"PostgreSQL"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01944	current	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].version	ledger-field	"18.6"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01945	current	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].claim	ledger-field	"In this setup UPDATE creates a new tuple at (0,2), while B's old Repeatable Read snapshot still reads the original balance at (0,1). After DELETE there are zero live rows but both tuple versions remain in the inspected page. This is not a promise of permanent physical retention."	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01946	current	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].sessions[0]	ledger-field	"A"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01947	current	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].sessions[1]	ledger-field	"B"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01948	current	docs/public/ledger.jsonl:93	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/row-versions.ts].errors	ledger-field	"[]"	P27	Source scenarios/postgres/04-mvcc/row-versions.ts; metadata, not added execution coverage		Generated metadata mirror	Resolved: scoped current Generated metadata mirror
C01949	current	docs/public/llms-full.txt:6368	docs/public/llms-full.txt#section[postgres/04-mvcc/row-versions.ts].complete-range	llms-range	"## postgres/04-mvcc/row-versions.ts\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: In this setup UPDATE creates a new tuple at (0,2), while B's old Repeatable Read snapshot still reads the original balance at (0,1). After DELETE there are zero live rows but both tuple versions remain in the inspected page. This is not a promise of permanent physical retention.\n\n*Inspect this tuple version: xmin identifies its inserting transaction, ctid its physical location. xmax can record deletion or row locking; this schedule follows the update/delete case.*\n\n```transcript\nA> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1001 |    0 | (0,1) |     100 \n(1 row)\n\nB> BEGIN ISOLATION LEVEL REPEATABLE READ;\nBEGIN\n\nB> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1001 |    0 | (0,1) |     100 \n(1 row)\n```\n\n*A's UPDATE creates a new tuple version and changes the old version's xmax and successor pointer.*\n\n```transcript\nA> UPDATE accounts SET balance = 200 WHERE id = 1\n   RETURNING xmin, xmax, ctid, balance;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1002 |    0 | (0,2) |     200 \n(1 row)\n```\n\n*B still reads the old version — but its xmax is no longer 0: A's xid is stamped on it.*\n\n```transcript\nB> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1001 | 1002 | (0,1) |     100 \n(1 row)\n\nB> COMMIT;\nCOMMIT\n\nB> SELECT xmin, xmax, ctid, balance FROM accounts WHERE id = 1;\n xmin | xmax | ctid  | balance \n------+------+-------+---------\n 1002 |    0 | (0,2) |     200 \n(1 row)\n```\n\n*pageinspect shows both versions physically on page 0 — the old one points at its successor.*\n\n```transcript\nA> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('accounts', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |      0 | (0,2)  \n(2 rows)\n```\n\n*DELETE marks the current version deleted; the following page inspection checks that its tuple body remains here.*\n\n```transcript\nA> DELETE FROM accounts WHERE id = 1 RETURNING xmin, xmax, ctid;\n xmin | xmax | ctid  \n------+------+-------\n 1002 | 1003 | (0,2) \n(1 row)\n\nA> SELECT count(*)::int AS live_rows FROM accounts;\n live_rows \n-----------\n         0 \n(1 row)\n```\n\n*Zero rows for SELECT — yet both versions are still on disk, awaiting VACUUM.*\n\n```transcript\nA> SELECT lp, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('accounts', 0)) ORDER BY lp;\n lp | t_xmin | t_xmax | t_ctid \n----+--------+--------+--------\n  1 |   1001 |   1002 | (0,2)  \n  2 |   1002 |   1003 | (0,2)  \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/row-versions.ts)</small>\n\n"	P27	Exact scenarios/postgres/04-mvcc/row-versions.ts schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01950	base	docs/postgres/04-mvcc/parts/snapshots-under-the-hood.md:1	docs/postgres/04-mvcc/parts/snapshots-under-the-hood.md#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts — do not edit by hand. -->\n\n*Transaction ids are handed out lazily — a transaction that only reads never gets one.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n\nA> SELECT pg_current_xact_id_if_assigned() AS xid;\n xid \n-----\n     \n(1 row)\n\nA> UPDATE accounts SET balance = 150 WHERE id = 1;\nUPDATE 1\n\nA> SELECT pg_current_xact_id_if_assigned() AS xid;\n xid  \n------\n 1001 \n(1 row)\n```\n\n*B grabs the next xid and commits immediately. A is still in progress.*\n\n```transcript\nB> UPDATE accounts SET balance = 200 WHERE id = 2 RETURNING xmin, balance;\n xmin | balance \n------+---------\n 1002 |     200 \n(1 row)\n```\n\n*C opens a transaction and inspects its own snapshot: the three numbers that decide all visibility.*\n\n```transcript\nC> BEGIN ISOLATION LEVEL REPEATABLE READ;\nBEGIN\n\nC> SELECT pg_snapshot_xmin(pg_current_snapshot()) AS xmin,\n          pg_snapshot_xmax(pg_current_snapshot()) AS xmax;\n xmin | xmax \n------+------\n 1001 | 1003 \n(1 row)\n```\n\n*xip = the xids that were in progress at snapshot time. A is on the list — so A is invisible even after it commits.*\n\n```transcript\nC> SELECT pg_snapshot_xip(pg_current_snapshot()) AS xid;\n xid  \n------\n 1001 \n(1 row)\n```\n\n*The arithmetic in action: B (committed, below xmax) is visible; A (in xip) is not.*\n\n```transcript\nC> SELECT id, owner, balance FROM accounts ORDER BY id;\n id | owner | balance \n----+-------+---------\n  1 | alice |     100 \n  2 | bob   |     200 \n(2 rows)\n\nA> COMMIT;\nCOMMIT\n```\n\n*A has now committed — but C's snapshot already decided: still invisible.*\n\n```transcript\nC> SELECT id, owner, balance FROM accounts ORDER BY id;\n id | owner | balance \n----+-------+---------\n  1 | alice |     100 \n  2 | bob   |     200 \n(2 rows)\n\nC> COMMIT;\nCOMMIT\n```\n\n*Only a NEW snapshot changes the verdict.*\n\n```transcript\nC> SELECT id, owner, balance FROM accounts ORDER BY id;\n id | owner | balance \n----+-------+---------\n  1 | alice |     150 \n  2 | bob   |     200 \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts)</small>\n"	P28	Exact scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/parts/snapshots-under-the-hood.md#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].complete-range; semantic decisions A1-A10 in audit report
C01951	base	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].scenario	ledger-field	"postgres/04-mvcc/snapshots-under-the-hood.ts"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].scenario (docs/public/ledger.jsonl:94); current scoped support applies
C01952	base	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].engine	ledger-field	"postgres"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].engine (docs/public/ledger.jsonl:94); current scoped support applies
C01953	base	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].product	ledger-field	"PostgreSQL"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].product (docs/public/ledger.jsonl:94); current scoped support applies
C01954	base	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].version	ledger-field	"18.6"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].version (docs/public/ledger.jsonl:94); current scoped support applies
C01955	base	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].claim	ledger-field	"A snapshot is three numbers — xmin, xmax, and the in-progress list — and visibility is pure arithmetic on them: committed before xmax and not in xip = visible. Commit order doesn't matter; the snapshot already decided."	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].scenario; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].engine; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].product; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].version; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].claim; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].sessions[1]; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].sessions[2]; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].errors; semantic decisions A1-A10 in audit report
C01956	base	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].sessions[0]	ledger-field	"A"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].sessions[0] (docs/public/ledger.jsonl:94); current scoped support applies
C01957	base	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].sessions[1]	ledger-field	"B"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].sessions[1] (docs/public/ledger.jsonl:94); current scoped support applies
C01958	base	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].sessions[2]	ledger-field	"C"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].sessions[2] (docs/public/ledger.jsonl:94); current scoped support applies
C01959	base	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].errors	ledger-field	"[]"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; metadata, not added execution coverage		Generated metadata mirror	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].errors (docs/public/ledger.jsonl:94); current scoped support applies
C01960	base	docs/public/llms-full.txt:6458	docs/public/llms-full.txt#section[postgres/04-mvcc/snapshots-under-the-hood.ts].complete-range	llms-range	"## postgres/04-mvcc/snapshots-under-the-hood.ts\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: A snapshot is three numbers — xmin, xmax, and the in-progress list — and visibility is pure arithmetic on them: committed before xmax and not in xip = visible. Commit order doesn't matter; the snapshot already decided.\n\n*Transaction ids are handed out lazily — a transaction that only reads never gets one.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n\nA> SELECT pg_current_xact_id_if_assigned() AS xid;\n xid \n-----\n     \n(1 row)\n\nA> UPDATE accounts SET balance = 150 WHERE id = 1;\nUPDATE 1\n\nA> SELECT pg_current_xact_id_if_assigned() AS xid;\n xid  \n------\n 1001 \n(1 row)\n```\n\n*B grabs the next xid and commits immediately. A is still in progress.*\n\n```transcript\nB> UPDATE accounts SET balance = 200 WHERE id = 2 RETURNING xmin, balance;\n xmin | balance \n------+---------\n 1002 |     200 \n(1 row)\n```\n\n*C opens a transaction and inspects its own snapshot: the three numbers that decide all visibility.*\n\n```transcript\nC> BEGIN ISOLATION LEVEL REPEATABLE READ;\nBEGIN\n\nC> SELECT pg_snapshot_xmin(pg_current_snapshot()) AS xmin,\n          pg_snapshot_xmax(pg_current_snapshot()) AS xmax;\n xmin | xmax \n------+------\n 1001 | 1003 \n(1 row)\n```\n\n*xip = the xids that were in progress at snapshot time. A is on the list — so A is invisible even after it commits.*\n\n```transcript\nC> SELECT pg_snapshot_xip(pg_current_snapshot()) AS xid;\n xid  \n------\n 1001 \n(1 row)\n```\n\n*The arithmetic in action: B (committed, below xmax) is visible; A (in xip) is not.*\n\n```transcript\nC> SELECT id, owner, balance FROM accounts ORDER BY id;\n id | owner | balance \n----+-------+---------\n  1 | alice |     100 \n  2 | bob   |     200 \n(2 rows)\n\nA> COMMIT;\nCOMMIT\n```\n\n*A has now committed — but C's snapshot already decided: still invisible.*\n\n```transcript\nC> SELECT id, owner, balance FROM accounts ORDER BY id;\n id | owner | balance \n----+-------+---------\n  1 | alice |     100 \n  2 | bob   |     200 \n(2 rows)\n\nC> COMMIT;\nCOMMIT\n```\n\n*Only a NEW snapshot changes the verdict.*\n\n```transcript\nC> SELECT id, owner, balance FROM accounts ORDER BY id;\n id | owner | balance \n----+-------+---------\n  1 | alice |     150 \n  2 | bob   |     200 \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts)</small>\n\n"	P28	Exact scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/04-mvcc/snapshots-under-the-hood.ts].complete-range; semantic decisions A1-A10 in audit report
C01961	current	docs/postgres/04-mvcc/parts/snapshots-under-the-hood.md:1	docs/postgres/04-mvcc/parts/snapshots-under-the-hood.md#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts — do not edit by hand. -->\n\n*A's initial ordinary read does not assign an xid; pg_current_xact_id() could assign one without a table write.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n\nA> SELECT pg_current_xact_id_if_assigned() AS xid;\n xid \n-----\n     \n(1 row)\n\nA> UPDATE accounts SET balance = 150 WHERE id = 1;\nUPDATE 1\n\nA> SELECT pg_current_xact_id_if_assigned() AS xid;\n xid  \n------\n 1001 \n(1 row)\n```\n\n*B grabs the next xid and commits immediately. A is still in progress.*\n\n```transcript\nB> UPDATE accounts SET balance = 200 WHERE id = 2 RETURNING xmin, balance;\n xmin | balance \n------+---------\n 1002 |     200 \n(1 row)\n```\n\n*C inspects its retained snapshot bounds; commit status and tuple metadata also matter for visibility.*\n\n```transcript\nC> BEGIN ISOLATION LEVEL REPEATABLE READ;\nBEGIN\n\nC> SELECT pg_snapshot_xmin(pg_current_snapshot()) AS xmin,\n          pg_snapshot_xmax(pg_current_snapshot()) AS xmax;\n xmin | xmax \n------+------\n 1001 | 1003 \n(1 row)\n```\n\n*xip = the xids that were in progress at snapshot time. A is on the list — so A is invisible even after it commits.*\n\n```transcript\nC> SELECT pg_snapshot_xip(pg_current_snapshot()) AS xid;\n xid  \n------\n 1001 \n(1 row)\n```\n\n*The arithmetic in action: B (committed, below xmax) is visible; A (in xip) is not.*\n\n```transcript\nC> SELECT id, owner, balance FROM accounts ORDER BY id;\n id | owner | balance \n----+-------+---------\n  1 | alice |     100 \n  2 | bob   |     200 \n(2 rows)\n\nA> COMMIT;\nCOMMIT\n```\n\n*A has now committed — but C's snapshot already decided: still invisible.*\n\n```transcript\nC> SELECT id, owner, balance FROM accounts ORDER BY id;\n id | owner | balance \n----+-------+---------\n  1 | alice |     100 \n  2 | bob   |     200 \n(2 rows)\n\nC> COMMIT;\nCOMMIT\n```\n\n*C's fresh transaction now reads A's committed value; own-write visibility is a separate rule.*\n\n```transcript\nC> SELECT id, owner, balance FROM accounts ORDER BY id;\n id | owner | balance \n----+-------+---------\n  1 | alice |     150 \n  2 | bob   |     200 \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts)</small>\n"	P28	Exact scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01962	current	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].scenario	ledger-field	"postgres/04-mvcc/snapshots-under-the-hood.ts"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01963	current	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].engine	ledger-field	"postgres"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01964	current	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].product	ledger-field	"PostgreSQL"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01965	current	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].version	ledger-field	"18.6"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01966	current	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].claim	ledger-field	"C's Repeatable Read snapshot records A as in progress and B as completed. C reads A's old value and B's committed value, repeats that view after A commits, then sees A's new value in a fresh transaction. The exposed snapshot components are not the complete tuple-visibility algorithm."	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01967	current	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].sessions[0]	ledger-field	"A"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01968	current	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].sessions[1]	ledger-field	"B"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01969	current	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].sessions[2]	ledger-field	"C"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01970	current	docs/public/ledger.jsonl:94	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/snapshots-under-the-hood.ts].errors	ledger-field	"[]"	P28	Source scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts; metadata, not added execution coverage		Generated metadata mirror	Resolved: scoped current Generated metadata mirror
C01971	current	docs/public/llms-full.txt:6464	docs/public/llms-full.txt#section[postgres/04-mvcc/snapshots-under-the-hood.ts].complete-range	llms-range	"## postgres/04-mvcc/snapshots-under-the-hood.ts\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: C's Repeatable Read snapshot records A as in progress and B as completed. C reads A's old value and B's committed value, repeats that view after A commits, then sees A's new value in a fresh transaction. The exposed snapshot components are not the complete tuple-visibility algorithm.\n\n*A's initial ordinary read does not assign an xid; pg_current_xact_id() could assign one without a table write.*\n\n```transcript\nA> BEGIN;\nBEGIN\n\nA> SELECT balance FROM accounts WHERE id = 1;\n balance \n---------\n     100 \n(1 row)\n\nA> SELECT pg_current_xact_id_if_assigned() AS xid;\n xid \n-----\n     \n(1 row)\n\nA> UPDATE accounts SET balance = 150 WHERE id = 1;\nUPDATE 1\n\nA> SELECT pg_current_xact_id_if_assigned() AS xid;\n xid  \n------\n 1001 \n(1 row)\n```\n\n*B grabs the next xid and commits immediately. A is still in progress.*\n\n```transcript\nB> UPDATE accounts SET balance = 200 WHERE id = 2 RETURNING xmin, balance;\n xmin | balance \n------+---------\n 1002 |     200 \n(1 row)\n```\n\n*C inspects its retained snapshot bounds; commit status and tuple metadata also matter for visibility.*\n\n```transcript\nC> BEGIN ISOLATION LEVEL REPEATABLE READ;\nBEGIN\n\nC> SELECT pg_snapshot_xmin(pg_current_snapshot()) AS xmin,\n          pg_snapshot_xmax(pg_current_snapshot()) AS xmax;\n xmin | xmax \n------+------\n 1001 | 1003 \n(1 row)\n```\n\n*xip = the xids that were in progress at snapshot time. A is on the list — so A is invisible even after it commits.*\n\n```transcript\nC> SELECT pg_snapshot_xip(pg_current_snapshot()) AS xid;\n xid  \n------\n 1001 \n(1 row)\n```\n\n*The arithmetic in action: B (committed, below xmax) is visible; A (in xip) is not.*\n\n```transcript\nC> SELECT id, owner, balance FROM accounts ORDER BY id;\n id | owner | balance \n----+-------+---------\n  1 | alice |     100 \n  2 | bob   |     200 \n(2 rows)\n\nA> COMMIT;\nCOMMIT\n```\n\n*A has now committed — but C's snapshot already decided: still invisible.*\n\n```transcript\nC> SELECT id, owner, balance FROM accounts ORDER BY id;\n id | owner | balance \n----+-------+---------\n  1 | alice |     100 \n  2 | bob   |     200 \n(2 rows)\n\nC> COMMIT;\nCOMMIT\n```\n\n*C's fresh transaction now reads A's committed value; own-write visibility is a separate rule.*\n\n```transcript\nC> SELECT id, owner, balance FROM accounts ORDER BY id;\n id | owner | balance \n----+-------+---------\n  1 | alice |     150 \n  2 | bob   |     200 \n(2 rows)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts)</small>\n\n"	P28	Exact scenarios/postgres/04-mvcc/snapshots-under-the-hood.ts schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01972	base	docs/postgres/04-mvcc/parts/vacuum.md:1	docs/postgres/04-mvcc/parts/vacuum.md#scenario[postgres/04-mvcc/vacuum.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/04-mvcc/vacuum.yaml — do not edit by hand. -->\n\n*Three updates leave three dead tuples on the page (the bloat lesson showed the chain).*\n\n```transcript\nA> UPDATE counters SET n = 1 WHERE id = 1;\nUPDATE 1\n\nA> UPDATE counters SET n = 2 WHERE id = 1;\nUPDATE 1\n\nA> UPDATE counters SET n = 3 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1001 | 3 \n(1 row)\n\nA> VACUUM counters;\nVACUUM\n```\n\n*After VACUUM: slot 1 is a redirect to the live version, slots 2–3 are unused (reusable), only slot 4 still holds a tuple. The corpses are gone.*\n\n```transcript\nA> SELECT lp, lp_flags, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('counters', 0)) ORDER BY lp;\n lp | lp_flags | t_xmin | t_xmax | t_ctid \n----+----------+--------+--------+--------\n  1 |        2 |        |        |        \n  2 |        0 |        |        |        \n  3 |        0 |        |        |        \n  4 |        1 |   1001 |      0 | (0,4)  \n(4 rows)\n```\n\n*The freed space is immediately reusable: the next INSERT lands in slot 2.*\n\n```transcript\nA> INSERT INTO counters VALUES (2, 0) RETURNING ctid, id;\n ctid  | id \n-------+----\n (0,2) |  2 \n(1 row)\n```\n\n*Same story at file level — 1000 rows in 5 pages, doubled to 9 by an UPDATE of every row.*\n\n```transcript\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     5 \n(1 row)\n\nA> UPDATE bloat SET filler = 'y';\nUPDATE 1000\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n\nA> VACUUM bloat;\nVACUUM\n```\n\n*VACUUM cleaned 1000 dead tuples — and the file is still 9 pages. The space is free *inside* the file.*\n\n```transcript\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n\nA> VACUUM FULL bloat;\nVACUUM\n```\n\n*VACUUM FULL rewrites the table from scratch — back to 5 pages. The price: it holds ACCESS EXCLUSIVE for the whole rewrite.*\n\n```transcript\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     5 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/vacuum.yaml)</small>\n"	P29	Exact scenarios/postgres/04-mvcc/vacuum.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Superseded/removed; exact current correspondences: docs/postgres/04-mvcc/parts/vacuum.md#scenario[postgres/04-mvcc/vacuum.yaml].complete-range; semantic decisions A1-A10 in audit report
C01973	base	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].scenario	ledger-field	"postgres/04-mvcc/vacuum.yaml"	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].scenario (docs/public/ledger.jsonl:95); current scoped support applies
C01974	base	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].engine	ledger-field	"postgres"	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].engine (docs/public/ledger.jsonl:95); current scoped support applies
C01975	base	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].product	ledger-field	"PostgreSQL"	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].product (docs/public/ledger.jsonl:95); current scoped support applies
C01976	base	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].version	ledger-field	"18.6"	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].version (docs/public/ledger.jsonl:95); current scoped support applies
C01977	base	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].claim	ledger-field	"VACUUM turns dead tuples into reusable free space inside the table's file — new rows land in the freed slots — but it does not shrink the file; only VACUUM FULL rewrites the table to its minimal size."	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Superseded/removed; exact current correspondences: docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].scenario; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].engine; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].product; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].version; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].claim; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].sessions[0]; docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].errors; semantic decisions A1-A10 in audit report
C01978	base	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].sessions[0]	ledger-field	"A"	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].sessions[0] (docs/public/ledger.jsonl:95); current scoped support applies
C01979	base	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].errors	ledger-field	"[]"	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; metadata, not added execution coverage		Generated metadata mirror	Retained at docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].errors (docs/public/ledger.jsonl:95); current scoped support applies
C01980	base	docs/public/llms-full.txt:6566	docs/public/llms-full.txt#section[postgres/04-mvcc/vacuum.yaml].complete-range	llms-range	"## postgres/04-mvcc/vacuum.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: VACUUM turns dead tuples into reusable free space inside the table's file — new rows land in the freed slots — but it does not shrink the file; only VACUUM FULL rewrites the table to its minimal size.\n\n*Three updates leave three dead tuples on the page (the bloat lesson showed the chain).*\n\n```transcript\nA> UPDATE counters SET n = 1 WHERE id = 1;\nUPDATE 1\n\nA> UPDATE counters SET n = 2 WHERE id = 1;\nUPDATE 1\n\nA> UPDATE counters SET n = 3 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1001 | 3 \n(1 row)\n\nA> VACUUM counters;\nVACUUM\n```\n\n*After VACUUM: slot 1 is a redirect to the live version, slots 2–3 are unused (reusable), only slot 4 still holds a tuple. The corpses are gone.*\n\n```transcript\nA> SELECT lp, lp_flags, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('counters', 0)) ORDER BY lp;\n lp | lp_flags | t_xmin | t_xmax | t_ctid \n----+----------+--------+--------+--------\n  1 |        2 |        |        |        \n  2 |        0 |        |        |        \n  3 |        0 |        |        |        \n  4 |        1 |   1001 |      0 | (0,4)  \n(4 rows)\n```\n\n*The freed space is immediately reusable: the next INSERT lands in slot 2.*\n\n```transcript\nA> INSERT INTO counters VALUES (2, 0) RETURNING ctid, id;\n ctid  | id \n-------+----\n (0,2) |  2 \n(1 row)\n```\n\n*Same story at file level — 1000 rows in 5 pages, doubled to 9 by an UPDATE of every row.*\n\n```transcript\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     5 \n(1 row)\n\nA> UPDATE bloat SET filler = 'y';\nUPDATE 1000\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n\nA> VACUUM bloat;\nVACUUM\n```\n\n*VACUUM cleaned 1000 dead tuples — and the file is still 9 pages. The space is free *inside* the file.*\n\n```transcript\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n\nA> VACUUM FULL bloat;\nVACUUM\n```\n\n*VACUUM FULL rewrites the table from scratch — back to 5 pages. The price: it holds ACCESS EXCLUSIVE for the whole rewrite.*\n\n```transcript\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     5 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/vacuum.yaml)</small>\n\n"	P29	Exact scenarios/postgres/04-mvcc/vacuum.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Superseded/removed; exact current correspondences: docs/public/llms-full.txt#section[postgres/04-mvcc/vacuum.yaml].complete-range; semantic decisions A1-A10 in audit report
C01981	current	docs/postgres/04-mvcc/parts/vacuum.md:1	docs/postgres/04-mvcc/parts/vacuum.md#scenario[postgres/04-mvcc/vacuum.yaml].complete-range	transcript-timeline-range	"<!-- GENERATED by `bun run gen` from scenarios/postgres/04-mvcc/vacuum.yaml — do not edit by hand. -->\n\n*Three updates leave three dead tuples on the page (the bloat lesson showed the chain).*\n\n```transcript\nA> UPDATE counters SET n = 1 WHERE id = 1;\nUPDATE 1\n\nA> UPDATE counters SET n = 2 WHERE id = 1;\nUPDATE 1\n\nA> UPDATE counters SET n = 3 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1001 | 3 \n(1 row)\n\nA> VACUUM counters;\nVACUUM\n```\n\n*After VACUUM: slot 1 is a redirect to the live version, slots 2–3 are unused (reusable), only slot 4 still holds a tuple. The corpses are gone.*\n\n```transcript\nA> SELECT lp, lp_flags, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('counters', 0)) ORDER BY lp;\n lp | lp_flags | t_xmin | t_xmax | t_ctid \n----+----------+--------+--------+--------\n  1 |        2 |        |        |        \n  2 |        0 |        |        |        \n  3 |        0 |        |        |        \n  4 |        1 |   1001 |      0 | (0,4)  \n(4 rows)\n```\n\n*The freed space is immediately reusable: the next INSERT lands in slot 2.*\n\n```transcript\nA> INSERT INTO counters VALUES (2, 0) RETURNING ctid, id;\n ctid  | id \n-------+----\n (0,2) |  2 \n(1 row)\n```\n\n*At file level this 1000-row heap grows from 5 to 9 pages after UPDATE.*\n\n```transcript\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     5 \n(1 row)\n\nA> UPDATE bloat SET filler = 'y';\nUPDATE 1000\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n\nA> VACUUM bloat;\nVACUUM\n```\n\n*Standard VACUUM completes and the asserted file size remains 9 pages. This size observation does not count reclaimed tuples or reusable bytes.*\n\n```transcript\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n\nA> VACUUM FULL bloat;\nVACUUM\n```\n\n*VACUUM FULL rewrites the table from scratch — back to 5 pages. The price: it holds ACCESS EXCLUSIVE for the whole rewrite.*\n\n```transcript\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     5 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/vacuum.yaml)</small>\n"	P29	Exact scenarios/postgres/04-mvcc/vacuum.yaml schedule, before-operation scopes and assertions in registry; PostgreSQL 18.6		Mirror of source explanations, SQL and asserted results; generation is not independent evidence	Resolved: scoped current Mirror of source explanations, SQL and asserted results; generation is not independent evidence
C01982	current	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].scenario	ledger-field	"postgres/04-mvcc/vacuum.yaml"	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01983	current	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].engine	ledger-field	"postgres"	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01984	current	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].product	ledger-field	"PostgreSQL"	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01985	current	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].version	ledger-field	"18.6"	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01986	current	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].claim	ledger-field	"In this setup VACUUM frees inspected counters slots and the next INSERT reuses slot 2. Standard VACUUM leaves bloat at 9 pages; VACUUM FULL compacts it to 5. Standard VACUUM can truncate empty trailing pages under suitable locking conditions, a variant not executed here."	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01987	current	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].sessions[0]	ledger-field	"A"	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; PostgreSQL 18.6; settings and operations in registry		Generated metadata/claim mirror; title-derived description also inspected in built page	Resolved: scoped current Generated metadata/claim mirror; title-derived description also inspected in built page
C01988	current	docs/public/ledger.jsonl:95	docs/public/ledger.jsonl#scenario[postgres/04-mvcc/vacuum.yaml].errors	ledger-field	"[]"	P29	Source scenarios/postgres/04-mvcc/vacuum.yaml; metadata, not added execution coverage		Generated metadata mirror	Resolved: scoped current Generated metadata mirror
C01989	current	docs/public/llms-full.txt:6572	docs/public/llms-full.txt#section[postgres/04-mvcc/vacuum.yaml].complete-range	llms-range	"## postgres/04-mvcc/vacuum.yaml\n\n- engine: postgres (PostgreSQL 18.6)\n- claim: In this setup VACUUM frees inspected counters slots and the next INSERT reuses slot 2. Standard VACUUM leaves bloat at 9 pages; VACUUM FULL compacts it to 5. Standard VACUUM can truncate empty trailing pages under suitable locking conditions, a variant not executed here.\n\n*Three updates leave three dead tuples on the page (the bloat lesson showed the chain).*\n\n```transcript\nA> UPDATE counters SET n = 1 WHERE id = 1;\nUPDATE 1\n\nA> UPDATE counters SET n = 2 WHERE id = 1;\nUPDATE 1\n\nA> UPDATE counters SET n = 3 WHERE id = 1 RETURNING xmin, n;\n xmin | n \n------+---\n 1001 | 3 \n(1 row)\n\nA> VACUUM counters;\nVACUUM\n```\n\n*After VACUUM: slot 1 is a redirect to the live version, slots 2–3 are unused (reusable), only slot 4 still holds a tuple. The corpses are gone.*\n\n```transcript\nA> SELECT lp, lp_flags, t_xmin, t_xmax, t_ctid\n   FROM heap_page_items(get_raw_page('counters', 0)) ORDER BY lp;\n lp | lp_flags | t_xmin | t_xmax | t_ctid \n----+----------+--------+--------+--------\n  1 |        2 |        |        |        \n  2 |        0 |        |        |        \n  3 |        0 |        |        |        \n  4 |        1 |   1001 |      0 | (0,4)  \n(4 rows)\n```\n\n*The freed space is immediately reusable: the next INSERT lands in slot 2.*\n\n```transcript\nA> INSERT INTO counters VALUES (2, 0) RETURNING ctid, id;\n ctid  | id \n-------+----\n (0,2) |  2 \n(1 row)\n```\n\n*At file level this 1000-row heap grows from 5 to 9 pages after UPDATE.*\n\n```transcript\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     5 \n(1 row)\n\nA> UPDATE bloat SET filler = 'y';\nUPDATE 1000\n\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n\nA> VACUUM bloat;\nVACUUM\n```\n\n*Standard VACUUM completes and the asserted file size remains 9 pages. This size observation does not count reclaimed tuples or reusable bytes.*\n\n```transcript\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     9 \n(1 row)\n\nA> VACUUM FULL bloat;\nVACUUM\n```\n\n*VACUUM FULL rewrites the table from scratch — back to 5 pages. The price: it holds ACCESS EXCLUSIVE for the whole rewrite.*\n\n```transcript\nA> SELECT (pg_relation_size('bloat') / 8192)::int AS pages;\n pages \n-------\n     5 \n(1 row)\n```\n\n<small>Verified against PostgreSQL 18.6 · [Run it yourself](/about/run-locally) · [Scenario source](https://github.com/svyatov/database-transactions/blob/main/scenarios/postgres/04-mvcc/vacuum.yaml)</small>\n\n"	P29	Exact scenarios/postgres/04-mvcc/vacuum.yaml schedule and corresponding Transcript; PostgreSQL 18.6		Generated explanation and Transcript mirror; not independent driver evidence	Resolved: scoped current Generated explanation and Transcript mirror; not independent driver evidence
C01990	base	docs/.vitepress/config.ts:402	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[0].text	chapter-summary	"3. Locking"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[0].text (docs/.vitepress/config.ts:402); current scoped support applies
C01991	base	docs/.vitepress/config.ts:404	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[1].text	chapter-summary	"Row locks"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[1].text (docs/.vitepress/config.ts:404); current scoped support applies
C01992	base	docs/.vitepress/config.ts:404	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[2].link	chapter-summary	"/postgres/03-locking/row-locks"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[2].link (docs/.vitepress/config.ts:404); current scoped support applies
C01993	base	docs/.vitepress/config.ts:405	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[3].text	chapter-summary	"Lock queues"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[3].text (docs/.vitepress/config.ts:405); current scoped support applies
C01994	base	docs/.vitepress/config.ts:405	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[4].link	chapter-summary	"/postgres/03-locking/lock-queues"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[4].link (docs/.vitepress/config.ts:405); current scoped support applies
C01995	base	docs/.vitepress/config.ts:407	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[5].text	chapter-summary	"NOWAIT, lock_timeout, SKIP LOCKED"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[5].text (docs/.vitepress/config.ts:407); current scoped support applies
C01996	base	docs/.vitepress/config.ts:408	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[6].link	chapter-summary	"/postgres/03-locking/nowait-skip-locked"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[6].link (docs/.vitepress/config.ts:408); current scoped support applies
C01997	base	docs/.vitepress/config.ts:411	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[7].text	chapter-summary	"Table locks & DDL"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[7].text (docs/.vitepress/config.ts:411); current scoped support applies
C01998	base	docs/.vitepress/config.ts:412	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[8].link	chapter-summary	"/postgres/03-locking/table-locks-and-ddl"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[8].link (docs/.vitepress/config.ts:412); current scoped support applies
C01999	base	docs/.vitepress/config.ts:414	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[9].text	chapter-summary	"Deadlocks"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[9].text (docs/.vitepress/config.ts:414); current scoped support applies
C02000	base	docs/.vitepress/config.ts:414	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[10].link	chapter-summary	"/postgres/03-locking/deadlocks"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[10].link (docs/.vitepress/config.ts:414); current scoped support applies
C02001	base	docs/.vitepress/config.ts:416	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[11].text	chapter-summary	"Monitoring locks"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[11].text (docs/.vitepress/config.ts:416); current scoped support applies
C02002	base	docs/.vitepress/config.ts:417	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[12].link	chapter-summary	"/postgres/03-locking/monitoring-locks"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[12].link (docs/.vitepress/config.ts:417); current scoped support applies
C02003	base	docs/.vitepress/config.ts:422	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[13].text	chapter-summary	"4. MVCC under the hood"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[13].text (docs/.vitepress/config.ts:422); current scoped support applies
C02004	base	docs/.vitepress/config.ts:425	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[14].text	chapter-summary	"Row versions: xmin, xmax, ctid"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[14].text (docs/.vitepress/config.ts:425); current scoped support applies
C02005	base	docs/.vitepress/config.ts:426	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[15].link	chapter-summary	"/postgres/04-mvcc/row-versions"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[15].link (docs/.vitepress/config.ts:426); current scoped support applies
C02006	base	docs/.vitepress/config.ts:429	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[16].text	chapter-summary	"Snapshots under the hood"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[16].text (docs/.vitepress/config.ts:429); current scoped support applies
C02007	base	docs/.vitepress/config.ts:430	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[17].link	chapter-summary	"/postgres/04-mvcc/snapshots-under-the-hood"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[17].link (docs/.vitepress/config.ts:430); current scoped support applies
C02008	base	docs/.vitepress/config.ts:433	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[18].text	chapter-summary	"Dead tuples and bloat"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[18].text (docs/.vitepress/config.ts:433); current scoped support applies
C02009	base	docs/.vitepress/config.ts:434	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[19].link	chapter-summary	"/postgres/04-mvcc/dead-tuples-and-bloat"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[19].link (docs/.vitepress/config.ts:434); current scoped support applies
C02010	base	docs/.vitepress/config.ts:436	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[20].text	chapter-summary	"VACUUM"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[20].text (docs/.vitepress/config.ts:436); current scoped support applies
C02011	base	docs/.vitepress/config.ts:436	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[21].link	chapter-summary	"/postgres/04-mvcc/vacuum"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[21].link (docs/.vitepress/config.ts:436); current scoped support applies
C02012	base	docs/.vitepress/config.ts:438	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[22].text	chapter-summary	"Long transactions"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[22].text (docs/.vitepress/config.ts:438); current scoped support applies
C02013	base	docs/.vitepress/config.ts:439	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[23].link	chapter-summary	"/postgres/04-mvcc/long-transactions"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[23].link (docs/.vitepress/config.ts:439); current scoped support applies
C02014	base	docs/.vitepress/config.ts:442	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[24].text	chapter-summary	"Transaction ID wraparound"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[24].text (docs/.vitepress/config.ts:442); current scoped support applies
C02015	base	docs/.vitepress/config.ts:443	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[25].link	chapter-summary	"/postgres/04-mvcc/wraparound"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Retained at docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[25].link (docs/.vitepress/config.ts:443); current scoped support applies
C02016	current	docs/.vitepress/config.ts:402	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[0].text	chapter-summary	"3. Locking"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02017	current	docs/.vitepress/config.ts:404	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[1].text	chapter-summary	"Row locks"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02018	current	docs/.vitepress/config.ts:404	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[2].link	chapter-summary	"/postgres/03-locking/row-locks"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02019	current	docs/.vitepress/config.ts:405	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[3].text	chapter-summary	"Lock queues"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02020	current	docs/.vitepress/config.ts:405	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[4].link	chapter-summary	"/postgres/03-locking/lock-queues"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02021	current	docs/.vitepress/config.ts:407	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[5].text	chapter-summary	"NOWAIT, lock_timeout, SKIP LOCKED"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02022	current	docs/.vitepress/config.ts:408	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[6].link	chapter-summary	"/postgres/03-locking/nowait-skip-locked"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02023	current	docs/.vitepress/config.ts:411	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[7].text	chapter-summary	"Table locks & DDL"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02024	current	docs/.vitepress/config.ts:412	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[8].link	chapter-summary	"/postgres/03-locking/table-locks-and-ddl"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02025	current	docs/.vitepress/config.ts:414	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[9].text	chapter-summary	"Deadlocks"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02026	current	docs/.vitepress/config.ts:414	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[10].link	chapter-summary	"/postgres/03-locking/deadlocks"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02027	current	docs/.vitepress/config.ts:416	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[11].text	chapter-summary	"Monitoring locks"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02028	current	docs/.vitepress/config.ts:417	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[12].link	chapter-summary	"/postgres/03-locking/monitoring-locks"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02029	current	docs/.vitepress/config.ts:422	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[13].text	chapter-summary	"4. MVCC under the hood"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02030	current	docs/.vitepress/config.ts:425	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[14].text	chapter-summary	"Row versions: xmin, xmax, ctid"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02031	current	docs/.vitepress/config.ts:426	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[15].link	chapter-summary	"/postgres/04-mvcc/row-versions"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02032	current	docs/.vitepress/config.ts:429	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[16].text	chapter-summary	"Snapshots under the hood"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02033	current	docs/.vitepress/config.ts:430	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[17].link	chapter-summary	"/postgres/04-mvcc/snapshots-under-the-hood"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02034	current	docs/.vitepress/config.ts:433	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[18].text	chapter-summary	"Dead tuples and bloat"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02035	current	docs/.vitepress/config.ts:434	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[19].link	chapter-summary	"/postgres/04-mvcc/dead-tuples-and-bloat"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02036	current	docs/.vitepress/config.ts:436	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[20].text	chapter-summary	"VACUUM"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02037	current	docs/.vitepress/config.ts:436	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[21].link	chapter-summary	"/postgres/04-mvcc/vacuum"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02038	current	docs/.vitepress/config.ts:438	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[22].text	chapter-summary	"Long transactions"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02039	current	docs/.vitepress/config.ts:439	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[23].link	chapter-summary	"/postgres/04-mvcc/long-transactions"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02040	current	docs/.vitepress/config.ts:442	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[24].text	chapter-summary	"Transaction ID wraparound"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02041	current	docs/.vitepress/config.ts:443	docs/.vitepress/config.ts#sidebarPostgres.locking-mvcc.field[25].link	chapter-summary	"/postgres/04-mvcc/wraparound"	P30	Topic label or lesson URL; all twelve assigned pages exist		Editorial navigation, not new behavior evidence	Resolved: scoped current Editorial navigation, not new behavior evidence
C02042	base	README.md:47	README.md#chapter[3].column[Chapter]	chapter-summary	"3. Locking: row locks, lock queues, NOWAIT/SKIP LOCKED, deadlocks, monitoring"	P31	Published chapter-topic coverage, not a claim that every contract is executed		Editorial coverage labels; corresponding chapter navigation retained	Retained at README.md#chapter[3].column[Chapter] (README.md:47); current scoped support applies
C02043	base	README.md:47	README.md#chapter[3].column[PostgreSQL]	chapter-summary	"✅"	P31	Published chapter-topic coverage, not a claim that every contract is executed		Editorial coverage labels; corresponding chapter navigation retained	Retained at README.md#chapter[3].column[PostgreSQL] (README.md:47); current scoped support applies
C02044	base	README.md:47	README.md#chapter[3].column[MySQL]	chapter-summary	"✅"	P31	Published chapter-topic coverage, not a claim that every contract is executed		Editorial coverage labels; corresponding chapter navigation retained	Retained at README.md#chapter[3].column[MySQL] (README.md:47); current scoped support applies
C02045	base	README.md:48	README.md#chapter[4].column[Chapter]	chapter-summary	"4. MVCC internals: snapshots, bloat, VACUUM / undo logs, history length"	P31	Published chapter-topic coverage, not a claim that every contract is executed		Editorial coverage labels; corresponding chapter navigation retained	Retained at README.md#chapter[4].column[Chapter] (README.md:48); current scoped support applies
C02046	base	README.md:48	README.md#chapter[4].column[PostgreSQL]	chapter-summary	"✅"	P31	Published chapter-topic coverage, not a claim that every contract is executed		Editorial coverage labels; corresponding chapter navigation retained	Retained at README.md#chapter[4].column[PostgreSQL] (README.md:48); current scoped support applies
C02047	base	README.md:48	README.md#chapter[4].column[MySQL]	chapter-summary	"✅"	P31	Published chapter-topic coverage, not a claim that every contract is executed		Editorial coverage labels; corresponding chapter navigation retained	Retained at README.md#chapter[4].column[MySQL] (README.md:48); current scoped support applies
C02048	current	README.md:47	README.md#chapter[3].column[Chapter]	chapter-summary	"3. Locking: row locks, lock queues, NOWAIT/SKIP LOCKED, deadlocks, monitoring"	P31	Published chapter-topic coverage, not a claim that every contract is executed		Editorial coverage labels; corresponding chapter navigation retained	Resolved: scoped current Editorial coverage labels; corresponding chapter navigation retained
C02049	current	README.md:47	README.md#chapter[3].column[PostgreSQL]	chapter-summary	"✅"	P31	Published chapter-topic coverage, not a claim that every contract is executed		Editorial coverage labels; corresponding chapter navigation retained	Resolved: scoped current Editorial coverage labels; corresponding chapter navigation retained
C02050	current	README.md:47	README.md#chapter[3].column[MySQL]	chapter-summary	"✅"	P31	Published chapter-topic coverage, not a claim that every contract is executed		Editorial coverage labels; corresponding chapter navigation retained	Resolved: scoped current Editorial coverage labels; corresponding chapter navigation retained
C02051	current	README.md:48	README.md#chapter[4].column[Chapter]	chapter-summary	"4. MVCC internals: snapshots, bloat, VACUUM / undo logs, history length"	P31	Published chapter-topic coverage, not a claim that every contract is executed		Editorial coverage labels; corresponding chapter navigation retained	Resolved: scoped current Editorial coverage labels; corresponding chapter navigation retained
C02052	current	README.md:48	README.md#chapter[4].column[PostgreSQL]	chapter-summary	"✅"	P31	Published chapter-topic coverage, not a claim that every contract is executed		Editorial coverage labels; corresponding chapter navigation retained	Resolved: scoped current Editorial coverage labels; corresponding chapter navigation retained
C02053	current	README.md:48	README.md#chapter[4].column[MySQL]	chapter-summary	"✅"	P31	Published chapter-topic coverage, not a claim that every contract is executed		Editorial coverage labels; corresponding chapter navigation retained	Resolved: scoped current Editorial coverage labels; corresponding chapter navigation retained
