| -- @Description Tests that a update operation in progress will block all other updates |
| -- until the transaction is committed. |
| -- |
| DROP TABLE IF EXISTS ao; |
| DROP |
| CREATE TABLE ao (a INT, b INT) USING @amname@; |
| CREATE |
| INSERT INTO ao SELECT i as a, i as b FROM generate_series(1,10) AS i; |
| INSERT 10 |
| |
| -- The actual test begins |
| 1: BEGIN; |
| BEGIN |
| 2: BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED; |
| BEGIN |
| 1: UPDATE ao SET b = 42 WHERE b = 1; |
| UPDATE 1 |
| 2&: UPDATE ao SET b = -1 WHERE b = 1; <waiting ...> |
| 1: COMMIT; |
| COMMIT |
| 2<: <... completed> |
| UPDATE 0 |
| 2: COMMIT; |
| COMMIT |
| SELECT * FROM ao WHERE b < 2; |
| a | b |
| ---+--- |
| (0 rows) |