diff options
author | Tom Lane | 2021-06-23 15:12:31 +0000 |
---|---|---|
committer | Tom Lane | 2021-06-23 15:13:00 +0000 |
commit | 4a054069a36032a59afceb07f3b837f09ab1a2e9 (patch) | |
tree | bd1b3af2b44313e68c8f1d4f59edc87ad8bd6c3e | |
parent | 24043c27b46f873211177e3460ab09dc011802a5 (diff) |
Improve display of query results in isolation tests.
Previously, isolationtester displayed SQL query results using some
ad-hoc code that clearly hadn't had much effort expended on it.
Field values longer than 14 characters weren't separated from
the next field, and usually caused misalignment of the columns
too. Also there was no visual separation of a query's result
from subsequent isolationtester output. This made test result
files confusing and hard to read.
To improve matters, let's use libpq's PQprint() function. Although
that's long since unused by psql, it's still plenty good enough
for the purpose here.
Like 741d7f104, back-patch to all supported branches, so that this
isn't a stumbling block for back-patching isolation test changes.
Discussion: https://postgr.es/m/[email protected]
104 files changed, 33268 insertions, 13778 deletions
diff --git a/contrib/test_decoding/expected/concurrent_ddl_dml.out b/contrib/test_decoding/expected/concurrent_ddl_dml.out index 53578c8ed6..3742a2a247 100644 --- a/contrib/test_decoding/expected/concurrent_ddl_dml.out +++ b/contrib/test_decoding/expected/concurrent_ddl_dml.out @@ -2,30 +2,38 @@ Parsed test spec with 2 sessions starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_float s1_insert_tbl2 s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s2_alter_tbl2_float: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE float; step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); step s1_commit: COMMIT; step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +data +------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[double precision]:1 -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl1_float s1_insert_tbl2 s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s2_alter_tbl1_float: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE float; <waiting ...> @@ -33,42 +41,54 @@ step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); step s1_commit: COMMIT; step s2_alter_tbl1_float: <... completed> step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +---------------------------------------------------------- +BEGIN table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_char s1_insert_tbl2 s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s2_alter_tbl2_char: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE character varying; step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); step s1_commit: COMMIT; step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +data +---------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[character varying]:'1' -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl1_char s1_insert_tbl2 s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s2_alter_tbl1_char: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE character varying; <waiting ...> @@ -76,21 +96,27 @@ step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); step s1_commit: COMMIT; step s2_alter_tbl1_char: <... completed> step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +---------------------------------------------------------- +BEGIN table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s1_insert_tbl2 s2_alter_tbl1_float s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); @@ -98,21 +124,27 @@ step s2_alter_tbl1_float: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE float; <waitin step s1_commit: COMMIT; step s2_alter_tbl1_float: <... completed> step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +---------------------------------------------------------- +BEGIN table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s1_insert_tbl2 s2_alter_tbl1_char s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); @@ -120,21 +152,27 @@ step s2_alter_tbl1_char: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE character varyi step s1_commit: COMMIT; step s2_alter_tbl1_char: <... completed> step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +---------------------------------------------------------- +BEGIN table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_float s1_insert_tbl2 s2_alter_tbl1_float s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s2_alter_tbl2_float: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE float; @@ -143,21 +181,27 @@ step s2_alter_tbl1_float: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE float; <waitin step s1_commit: COMMIT; step s2_alter_tbl1_float: <... completed> step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +data +------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[double precision]:1 -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_char s1_insert_tbl2 s2_alter_tbl1_char s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s2_alter_tbl2_char: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE character varying; @@ -166,21 +210,27 @@ step s2_alter_tbl1_char: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE character varyi step s1_commit: COMMIT; step s2_alter_tbl1_char: <... completed> step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +data +---------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[character varying]:'1' -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s2_alter_tbl2_char s1_begin s1_insert_tbl1 s2_alter_tbl2_text s1_insert_tbl2 s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s2_alter_tbl2_char: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE character varying; step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); @@ -188,21 +238,27 @@ step s2_alter_tbl2_text: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE text; step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); step s1_commit: COMMIT; step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +---------------------------------------------------------- +BEGIN table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 -table public.tbl2: INSERT: val1[integer]:1 val2[text]:'1' -COMMIT -?column? +table public.tbl2: INSERT: val1[integer]:1 val2[text]:'1' +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s2_alter_tbl2_char s1_begin s1_insert_tbl1 s2_alter_tbl2_text s1_insert_tbl2 s2_alter_tbl1_char s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s2_alter_tbl2_char: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE character varying; step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); @@ -212,21 +268,27 @@ step s2_alter_tbl1_char: ALTER TABLE tbl1 ALTER COLUMN val2 TYPE character varyi step s1_commit: COMMIT; step s2_alter_tbl1_char: <... completed> step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +---------------------------------------------------------- +BEGIN table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 -table public.tbl2: INSERT: val1[integer]:1 val2[text]:'1' -COMMIT -?column? +table public.tbl2: INSERT: val1[integer]:1 val2[text]:'1' +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_boolean s1_insert_tbl2 s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s2_alter_tbl2_boolean: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE boolean; @@ -234,21 +296,27 @@ ERROR: column "val2" cannot be cast automatically to type boolean step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); step s1_commit: COMMIT; step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +---------------------------------------------------------- +BEGIN table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_boolean s1_insert_tbl2 s2_alter_tbl1_boolean s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s2_alter_tbl2_boolean: ALTER TABLE tbl2 ALTER COLUMN val2 TYPE boolean; @@ -259,42 +327,54 @@ step s1_commit: COMMIT; step s2_alter_tbl1_boolean: <... completed> ERROR: column "val2" cannot be cast automatically to type boolean step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +---------------------------------------------------------- +BEGIN table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_add_int s1_insert_tbl2_3col s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s2_alter_tbl2_add_int: ALTER TABLE tbl2 ADD COLUMN val3 INTEGER; step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); step s1_commit: COMMIT; step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +data +-------------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1 -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s1_insert_tbl2 s1_commit s1_begin s2_alter_tbl2_add_int s1_insert_tbl2_3col s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); @@ -304,45 +384,57 @@ step s2_alter_tbl2_add_int: ALTER TABLE tbl2 ADD COLUMN val3 INTEGER; step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); step s1_commit: COMMIT; step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 -table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 -COMMIT -BEGIN +data +-------------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 +COMMIT +BEGIN table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1 -COMMIT -?column? +COMMIT +(7 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_add_float s1_insert_tbl2_3col s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s2_alter_tbl2_add_float: ALTER TABLE tbl2 ADD COLUMN val3 FLOAT; step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); step s1_commit: COMMIT; step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +data +----------------------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[double precision]:1 -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s1_insert_tbl2 s1_commit s1_begin s2_alter_tbl2_add_float s1_insert_tbl2_3col s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); @@ -352,45 +444,57 @@ step s2_alter_tbl2_add_float: ALTER TABLE tbl2 ADD COLUMN val3 FLOAT; step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); step s1_commit: COMMIT; step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 -table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 -COMMIT -BEGIN +data +----------------------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 +COMMIT +BEGIN table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[double precision]:1 -COMMIT -?column? +COMMIT +(7 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s2_alter_tbl2_add_char s1_insert_tbl2_3col s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s2_alter_tbl2_add_char: ALTER TABLE tbl2 ADD COLUMN val3 character varying; step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); step s1_commit: COMMIT; step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +data +-------------------------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[character varying]:'1' -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s1_begin s1_insert_tbl1 s1_insert_tbl2 s1_commit s1_begin s2_alter_tbl2_add_char s1_insert_tbl2_3col s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); @@ -400,24 +504,30 @@ step s2_alter_tbl2_add_char: ALTER TABLE tbl2 ADD COLUMN val3 character varying; step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); step s1_commit: COMMIT; step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 -table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 -COMMIT -BEGIN +data +-------------------------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 +COMMIT +BEGIN table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[character varying]:'1' -COMMIT -?column? +COMMIT +(7 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s2_alter_tbl2_add_int s1_begin s1_insert_tbl2_3col s2_alter_tbl2_drop_3rd_col s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s2_alter_tbl2_add_int: ALTER TABLE tbl2 ADD COLUMN val3 INTEGER; step s1_begin: BEGIN; step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); @@ -425,20 +535,26 @@ step s2_alter_tbl2_drop_3rd_col: ALTER TABLE tbl2 DROP COLUMN val3; <waiting ... step s1_commit: COMMIT; step s2_alter_tbl2_drop_3rd_col: <... completed> step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +-------------------------------------------------------------------------- +BEGIN table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1 -COMMIT -?column? +COMMIT +(3 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s2_alter_tbl2_add_int s1_begin s1_insert_tbl2_3col s2_alter_tbl2_drop_3rd_col s1_insert_tbl2 s1_commit s1_insert_tbl2 s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s2_alter_tbl2_add_int: ALTER TABLE tbl2 ADD COLUMN val3 INTEGER; step s1_begin: BEGIN; step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); @@ -448,24 +564,30 @@ step s1_commit: COMMIT; step s2_alter_tbl2_drop_3rd_col: <... completed> step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1 +data +----------------------------------------------------------------------------- +BEGIN +table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:null -COMMIT -BEGIN -table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 -COMMIT -?column? +COMMIT +BEGIN +table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 +COMMIT +(7 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s2_alter_tbl2_add_int s1_begin s1_insert_tbl2_3col s2_alter_tbl2_drop_3rd_col s1_commit s2_get_changes s2_alter_tbl2_add_text s1_begin s1_insert_tbl2_3col s2_alter_tbl2_3rd_char s1_insert_tbl2_3col s1_commit s2_get_changes s2_alter_tbl2_3rd_int s1_insert_tbl2_3col s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s2_alter_tbl2_add_int: ALTER TABLE tbl2 ADD COLUMN val3 INTEGER; step s1_begin: BEGIN; step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); @@ -473,11 +595,13 @@ step s2_alter_tbl2_drop_3rd_col: ALTER TABLE tbl2 DROP COLUMN val3; <waiting ... step s1_commit: COMMIT; step s2_alter_tbl2_drop_3rd_col: <... completed> step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +-------------------------------------------------------------------------- +BEGIN table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1 -COMMIT +COMMIT +(3 rows) + step s2_alter_tbl2_add_text: ALTER TABLE tbl2 ADD COLUMN val3 TEXT; step s1_begin: BEGIN; step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); @@ -486,29 +610,37 @@ step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); step s1_commit: COMMIT; step s2_alter_tbl2_3rd_char: <... completed> step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +------------------------------------------------------------------------- +BEGIN table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1' table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1' -COMMIT +COMMIT +(4 rows) + step s2_alter_tbl2_3rd_int: ALTER TABLE tbl2 ALTER COLUMN val3 TYPE int USING val3::integer; step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +-------------------------------------------------------------------------- +BEGIN table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[integer]:1 -COMMIT -?column? +COMMIT +(3 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s2_alter_tbl2_add_char s1_begin s1_insert_tbl1 s1_insert_tbl2_3col s2_alter_tbl2_3rd_text s1_insert_tbl2_3col s1_commit s1_insert_tbl2_3col s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s2_alter_tbl2_add_char: ALTER TABLE tbl2 ADD COLUMN val3 character varying; step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); @@ -519,25 +651,31 @@ step s1_commit: COMMIT; step s2_alter_tbl2_3rd_text: <... completed> step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +data +-------------------------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[character varying]:'1' table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[character varying]:'1' -COMMIT -BEGIN -table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1' -COMMIT -?column? +COMMIT +BEGIN +table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1' +COMMIT +(8 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s2_alter_tbl2_add_text s1_begin s1_insert_tbl1 s1_insert_tbl2_3col s2_alter_tbl2_3rd_char s1_insert_tbl2_3col s1_commit s1_insert_tbl2_3col s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s2_alter_tbl2_add_text: ALTER TABLE tbl2 ADD COLUMN val3 TEXT; step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); @@ -548,25 +686,31 @@ step s1_commit: COMMIT; step s2_alter_tbl2_3rd_char: <... completed> step s1_insert_tbl2_3col: INSERT INTO tbl2 (val1, val2, val3) VALUES (1, 1, 1); step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 -table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1' -table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1' -COMMIT -BEGIN +data +-------------------------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1' +table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1' +COMMIT +BEGIN table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[character varying]:'1' -COMMIT -?column? +COMMIT +(8 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s2_alter_tbl2_add_char s1_begin s1_insert_tbl1 s2_alter_tbl2_3rd_text s1_insert_tbl2_3col s1_commit s2_alter_tbl2_drop_3rd_col s1_insert_tbl2 s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s2_alter_tbl2_add_char: ALTER TABLE tbl2 ADD COLUMN val3 character varying; step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); @@ -576,24 +720,30 @@ step s1_commit: COMMIT; step s2_alter_tbl2_drop_3rd_col: ALTER TABLE tbl2 DROP COLUMN val3; step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +data +------------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[text]:'1' -COMMIT -BEGIN -table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 -COMMIT -?column? +COMMIT +BEGIN +table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 +COMMIT +(7 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s2_alter_tbl2_add_text s1_begin s1_insert_tbl1 s2_alter_tbl2_3rd_char s1_insert_tbl2_3col s1_commit s2_alter_tbl2_drop_3rd_col s1_insert_tbl2 s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s2_alter_tbl2_add_text: ALTER TABLE tbl2 ADD COLUMN val3 TEXT; step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); @@ -603,24 +753,30 @@ step s1_commit: COMMIT; step s2_alter_tbl2_drop_3rd_col: ALTER TABLE tbl2 DROP COLUMN val3; step s1_insert_tbl2: INSERT INTO tbl2 (val1, val2) VALUES (1, 1); step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 +data +-------------------------------------------------------------------------------------- +BEGIN +table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 val3[character varying]:'1' -COMMIT -BEGIN -table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 -COMMIT -?column? +COMMIT +BEGIN +table public.tbl2: INSERT: val1[integer]:1 val2[integer]:1 +COMMIT +(7 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s1_init s2_alter_tbl2_add_char s1_begin s1_insert_tbl1 s2_alter_tbl2_drop_3rd_col s1_insert_tbl1 s1_commit s2_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s2_alter_tbl2_add_char: ALTER TABLE tbl2 ADD COLUMN val3 character varying; step s1_begin: BEGIN; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); @@ -628,12 +784,16 @@ step s2_alter_tbl2_drop_3rd_col: ALTER TABLE tbl2 DROP COLUMN val3; step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); step s1_commit: COMMIT; step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +---------------------------------------------------------- +BEGIN table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 table public.tbl1: INSERT: val1[integer]:1 val2[integer]:1 -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop diff --git a/contrib/test_decoding/expected/concurrent_stream.out b/contrib/test_decoding/expected/concurrent_stream.out index 6f8b2176db..bf1e1326c6 100644 --- a/contrib/test_decoding/expected/concurrent_stream.out +++ b/contrib/test_decoding/expected/concurrent_stream.out @@ -9,12 +9,16 @@ step s1_toast_insert: INSERT INTO stream_test SELECT large_val(); step s2_ddl: CREATE TABLE stream_test2(data text); step s1_commit: COMMIT; step s1_get_stream_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL,NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'stream-changes', '1'); -data - +data +---------------------------------------- opening a streamed block for transaction -streaming change for transaction +streaming change for transaction closing a streamed block for transaction -committing streamed transaction -?column? +committing streamed transaction +(4 rows) + +?column? +-------- +stop +(1 row) -stop diff --git a/contrib/test_decoding/expected/delayed_startup.out b/contrib/test_decoding/expected/delayed_startup.out index db8c525ac4..d10de3658a 100644 --- a/contrib/test_decoding/expected/delayed_startup.out +++ b/contrib/test_decoding/expected/delayed_startup.out @@ -6,33 +6,45 @@ step s1w: INSERT INTO do_write DEFAULT VALUES; step s2init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); <waiting ...> step s1c: COMMIT; step s2init: <... completed> -?column? +?column? +-------- +init +(1 row) -init step s2start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false'); -data +data +---- +(0 rows) step s1b: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1w: INSERT INTO do_write DEFAULT VALUES; step s1c: COMMIT; step s2start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false'); -data - -BEGIN +data +-------------------------------------------- +BEGIN table public.do_write: INSERT: id[integer]:2 -COMMIT +COMMIT +(3 rows) + step s1b: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1w: INSERT INTO do_write DEFAULT VALUES; step s2start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false'); -data +data +---- +(0 rows) step s1c: COMMIT; step s2start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false'); -data - -BEGIN +data +-------------------------------------------- +BEGIN table public.do_write: INSERT: id[integer]:3 -COMMIT -?column? +COMMIT +(3 rows) + +?column? +-------- +stop +(1 row) -stop diff --git a/contrib/test_decoding/expected/mxact.out b/contrib/test_decoding/expected/mxact.out index f0d96cc67d..03ad3df099 100644 --- a/contrib/test_decoding/expected/mxact.out +++ b/contrib/test_decoding/expected/mxact.out @@ -2,65 +2,89 @@ Parsed test spec with 3 sessions starting permutation: s0init s0start s1begin s1sharepgclass s2begin s2sharepgclass s0w s0start s2commit s1commit step s0init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false'); -data +data +---- +(0 rows) step s1begin: BEGIN; step s1sharepgclass: SELECT count(*) > 1 FROM (SELECT * FROM pg_class FOR SHARE) s; -?column? +?column? +-------- +t +(1 row) -t step s2begin: BEGIN; step s2sharepgclass: SELECT count(*) > 1 FROM (SELECT * FROM pg_class FOR SHARE) s; -?column? +?column? +-------- +t +(1 row) -t step s0w: INSERT INTO do_write DEFAULT VALUES; step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false'); -data - -BEGIN +data +-------------------------------------------- +BEGIN table public.do_write: INSERT: id[integer]:1 -COMMIT +COMMIT +(3 rows) + step s2commit: COMMIT; step s1commit: COMMIT; -?column? +?column? +-------- +stop +(1 row) -stop starting permutation: s0init s0start s1begin s1keysharepgclass s2begin s2keysharepgclass s0alter s0w s0start s2commit s1commit step s0init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); -?column? +?column? +-------- +init +(1 row) -init step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false'); -data +data +---- +(0 rows) step s1begin: BEGIN; step s1keysharepgclass: SELECT count(*) > 1 FROM (SELECT * FROM pg_class FOR KEY SHARE) s; -?column? +?column? +-------- +t +(1 row) -t step s2begin: BEGIN; step s2keysharepgclass: SELECT count(*) > 1 FROM (SELECT * FROM pg_class FOR KEY SHARE) s; -?column? +?column? +-------- +t +(1 row) -t step s0alter: ALTER TABLE do_write ADD column ts timestamptz; step s0w: INSERT INTO do_write DEFAULT VALUES; step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false'); -data - -BEGIN -COMMIT -BEGIN +data +------------------------------------------------------------------------------ +BEGIN +COMMIT +BEGIN table public.do_write: INSERT: id[integer]:1 ts[timestamp with time zone]:null -COMMIT +COMMIT +(5 rows) + step s2commit: COMMIT; step s1commit: COMMIT; -?column? +?column? +-------- +stop +(1 row) -stop diff --git a/contrib/test_decoding/expected/oldest_xmin.out b/contrib/test_decoding/expected/oldest_xmin.out index 02a091398f..dd6053f9c1 100644 --- a/contrib/test_decoding/expected/oldest_xmin.out +++ b/contrib/test_decoding/expected/oldest_xmin.out @@ -3,28 +3,38 @@ Parsed test spec with 2 sessions starting permutation: s0_begin s0_getxid s1_begin s1_insert s0_alter s0_commit s0_checkpoint s0_get_changes s0_get_changes s1_commit s0_vacuum s0_get_changes step s0_begin: BEGIN; step s0_getxid: SELECT pg_current_xact_id() IS NULL; -?column? +?column? +-------- +f +(1 row) -f step s1_begin: BEGIN; step s1_insert: INSERT INTO harvest VALUES ((1, 2, 3)); step s0_alter: ALTER TYPE basket DROP ATTRIBUTE mangos; step s0_commit: COMMIT; step s0_checkpoint: CHECKPOINT; step s0_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data +data +---- +(0 rows) step s0_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data +data +---- +(0 rows) step s1_commit: COMMIT; step s0_vacuum: VACUUM pg_attribute; step s0_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +------------------------------------------------------ +BEGIN table public.harvest: INSERT: fruits[basket]:'(1,2,3)' -COMMIT -?column? +COMMIT +(3 rows) + +?column? +-------- +stop +(1 row) -stop diff --git a/contrib/test_decoding/expected/ondisk_startup.out b/contrib/test_decoding/expected/ondisk_startup.out index 586b03d75d..bc7ff07164 100644 --- a/contrib/test_decoding/expected/ondisk_startup.out +++ b/contrib/test_decoding/expected/ondisk_startup.out @@ -3,50 +3,64 @@ Parsed test spec with 3 sessions starting permutation: s2b s2txid s1init s3b s3txid s2alter s2c s2b s2txid s3c s2c s1insert s1checkpoint s1start s1insert s1alter s1insert s1start step s2b: BEGIN; step s2txid: SELECT pg_current_xact_id() IS NULL; -?column? +?column? +-------- +f +(1 row) -f step s1init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); <waiting ...> step s3b: BEGIN; step s3txid: SELECT pg_current_xact_id() IS NULL; -?column? +?column? +-------- +f +(1 row) -f step s2alter: ALTER TABLE do_write ADD COLUMN addedbys2 int; step s2c: COMMIT; step s2b: BEGIN; step s2txid: SELECT pg_current_xact_id() IS NULL; -?column? +?column? +-------- +f +(1 row) -f step s3c: COMMIT; step s1init: <... completed> -?column? +?column? +-------- +init +(1 row) -init step s2c: COMMIT; step s1insert: INSERT INTO do_write DEFAULT VALUES; step s1checkpoint: CHECKPOINT; step s1start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false'); -data - -BEGIN +data +-------------------------------------------------------------------- +BEGIN table public.do_write: INSERT: id[integer]:1 addedbys2[integer]:null -COMMIT +COMMIT +(3 rows) + step s1insert: INSERT INTO do_write DEFAULT VALUES; step s1alter: ALTER TABLE do_write ADD COLUMN addedbys1 int; step s1insert: INSERT INTO do_write DEFAULT VALUES; step s1start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false'); -data - -BEGIN -table public.do_write: INSERT: id[integer]:2 addedbys2[integer]:null -COMMIT -BEGIN -COMMIT -BEGIN +data +-------------------------------------------------------------------------------------------- +BEGIN +table public.do_write: INSERT: id[integer]:2 addedbys2[integer]:null +COMMIT +BEGIN +COMMIT +BEGIN table public.do_write: INSERT: id[integer]:3 addedbys2[integer]:null addedbys1[integer]:null -COMMIT -?column? +COMMIT +(8 rows) + +?column? +-------- +stop +(1 row) -stop diff --git a/contrib/test_decoding/expected/snapshot_transfer.out b/contrib/test_decoding/expected/snapshot_transfer.out index c3a0000994..833f47874c 100644 --- a/contrib/test_decoding/expected/snapshot_transfer.out +++ b/contrib/test_decoding/expected/snapshot_transfer.out @@ -4,32 +4,40 @@ starting permutation: s0_begin s0_begin_sub0 s0_log_assignment s0_sub_get_base_s step s0_begin: BEGIN; step s0_begin_sub0: SAVEPOINT s0; step s0_log_assignment: SELECT pg_current_xact_id() IS NULL; -?column? +?column? +-------- +f +(1 row) -f step s0_sub_get_base_snap: INSERT INTO dummy VALUES (0); step s1_produce_new_snap: ALTER TABLE harvest ADD COLUMN mangos int; step s0_insert: INSERT INTO harvest VALUES (1, 2, 3); step s0_end_sub0: RELEASE SAVEPOINT s0; step s0_commit: COMMIT; step s0_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.dummy: INSERT: i[integer]:0 +data +---------------------------------------------------------------------------------- +BEGIN +table public.dummy: INSERT: i[integer]:0 table public.harvest: INSERT: apples[integer]:1 pears[integer]:2 mangos[integer]:3 -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop starting permutation: s0_begin s0_begin_sub0 s0_log_assignment s0_begin_sub1 s0_sub_get_base_snap s1_produce_new_snap s0_insert s0_end_sub1 s0_end_sub0 s0_commit s0_get_changes step s0_begin: BEGIN; step s0_begin_sub0: SAVEPOINT s0; step s0_log_assignment: SELECT pg_current_xact_id() IS NULL; -?column? +?column? +-------- +f +(1 row) -f step s0_begin_sub1: SAVEPOINT s1; step s0_sub_get_base_snap: INSERT INTO dummy VALUES (0); step s1_produce_new_snap: ALTER TABLE harvest ADD COLUMN mangos int; @@ -38,12 +46,16 @@ step s0_end_sub1: RELEASE SAVEPOINT s1; step s0_end_sub0: RELEASE SAVEPOINT s0; step s0_commit: COMMIT; step s0_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN -table public.dummy: INSERT: i[integer]:0 +data +---------------------------------------------------------------------------------- +BEGIN +table public.dummy: INSERT: i[integer]:0 table public.harvest: INSERT: apples[integer]:1 pears[integer]:2 mangos[integer]:3 -COMMIT -?column? +COMMIT +(4 rows) + +?column? +-------- +stop +(1 row) -stop diff --git a/contrib/test_decoding/expected/subxact_without_top.out b/contrib/test_decoding/expected/subxact_without_top.out index 99ce998822..4241b0015b 100644 --- a/contrib/test_decoding/expected/subxact_without_top.out +++ b/contrib/test_decoding/expected/subxact_without_top.out @@ -15,25 +15,35 @@ step s2_checkpoint: CHECKPOINT; step s1_begin: BEGIN; step s1_dml: INSERT INTO harvest VALUES (43); step s0_many_subxacts: select subxacts(); -subxacts +subxacts +-------- + +(1 row) - step s0_commit: COMMIT; step s2_checkpoint: CHECKPOINT; step s2_get_changes_suppress_output: SELECT null n FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1') GROUP BY n; -n +n +- + +(1 row) - step s2_get_changes_suppress_output: SELECT null n FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1') GROUP BY n; -n +n +- +(0 rows) step s1_commit: COMMIT; step s2_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); -data - -BEGIN +data +------------------------------------------------ +BEGIN table public.harvest: INSERT: apples[integer]:43 -COMMIT -?column? +COMMIT +(3 rows) + +?column? +-------- +stop +(1 row) -stop diff --git a/contrib/test_decoding/expected/twophase_snapshot.out b/contrib/test_decoding/expected/twophase_snapshot.out index 0e8e1f50fe..f555ffddf7 100644 --- a/contrib/test_decoding/expected/twophase_snapshot.out +++ b/contrib/test_decoding/expected/twophase_snapshot.out @@ -3,39 +3,51 @@ Parsed test spec with 3 sessions starting permutation: s2b s2txid s1init s3b s3txid s2c s2b s2insert s2p s3c s1insert s1start s2cp s1start step s2b: BEGIN; step s2txid: SELECT pg_current_xact_id() IS NULL; -?column? +?column? +-------- +f +(1 row) -f step s1init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding', false, true); <waiting ...> step s3b: BEGIN; step s3txid: SELECT pg_current_xact_id() IS NULL; -?column? +?column? +-------- +f +(1 row) -f step s2c: COMMIT; step s2b: BEGIN; step s2insert: INSERT INTO do_write DEFAULT VALUES; step s2p: PREPARE TRANSACTION 'test1'; step s3c: COMMIT; step s1init: <... completed> -?column? +?column? +-------- +init +(1 row) -init step s1insert: INSERT INTO do_write DEFAULT VALUES; step s1start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false', 'skip-empty-xacts', '1'); -data - -BEGIN +data +-------------------------------------------- +BEGIN table public.do_write: INSERT: id[integer]:2 -COMMIT +COMMIT +(3 rows) + step s2cp: COMMIT PREPARED 'test1'; step s1start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false', 'skip-empty-xacts', '1'); -data - -BEGIN +data +-------------------------------------------- +BEGIN table public.do_write: INSERT: id[integer]:1 -PREPARE TRANSACTION 'test1' -COMMIT PREPARED 'test1' -?column? +PREPARE TRANSACTION 'test1' +COMMIT PREPARED 'test1' +(4 rows) + +?column? +-------- +stop +(1 row) -stop diff --git a/src/test/isolation/expected/aborted-keyrevoke.out b/src/test/isolation/expected/aborted-keyrevoke.out index c93762394f..a03542636f 100644 --- a/src/test/isolation/expected/aborted-keyrevoke.out +++ b/src/test/isolation/expected/aborted-keyrevoke.out @@ -5,14 +5,18 @@ step s1s: SAVEPOINT f; step s1u: UPDATE foo SET key = 2; step s1r: ROLLBACK TO f; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1c: COMMIT; step s2l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; starting permutation: s1s s1u s1r s1l s2l s1c s2c @@ -20,13 +24,17 @@ step s1s: SAVEPOINT f; step s1u: UPDATE foo SET key = 2; step s1r: ROLLBACK TO f; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1c: COMMIT; step s2c: COMMIT; @@ -35,13 +43,17 @@ step s1s: SAVEPOINT f; step s1u: UPDATE foo SET key = 2; step s1r: ROLLBACK TO f; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; step s1c: COMMIT; @@ -50,13 +62,17 @@ step s1s: SAVEPOINT f; step s1u: UPDATE foo SET key = 2; step s1r: ROLLBACK TO f; step s2l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1c: COMMIT; step s2c: COMMIT; @@ -65,13 +81,17 @@ step s1s: SAVEPOINT f; step s1u: UPDATE foo SET key = 2; step s1r: ROLLBACK TO f; step s2l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; step s1c: COMMIT; @@ -80,14 +100,18 @@ step s1s: SAVEPOINT f; step s1u: UPDATE foo SET key = 2; step s1r: ROLLBACK TO f; step s2l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1c: COMMIT; starting permutation: s1s s1u s2l s1r s1l s1c s2c @@ -96,13 +120,17 @@ step s1u: UPDATE foo SET key = 2; step s2l: SELECT * FROM foo FOR KEY SHARE; <waiting ...> step s1r: ROLLBACK TO f; step s2l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1c: COMMIT; step s2c: COMMIT; @@ -112,13 +140,17 @@ step s1u: UPDATE foo SET key = 2; step s2l: SELECT * FROM foo FOR KEY SHARE; <waiting ...> step s1r: ROLLBACK TO f; step s2l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; step s1c: COMMIT; @@ -128,89 +160,113 @@ step s1u: UPDATE foo SET key = 2; step s2l: SELECT * FROM foo FOR KEY SHARE; <waiting ...> step s1r: ROLLBACK TO f; step s2l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1c: COMMIT; starting permutation: s1s s2l s1u s2c s1r s1l s1c step s1s: SAVEPOINT f; step s2l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1u: UPDATE foo SET key = 2; <waiting ...> step s2c: COMMIT; step s1u: <... completed> step s1r: ROLLBACK TO f; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1c: COMMIT; starting permutation: s1s s2l s2c s1u s1r s1l s1c step s1s: SAVEPOINT f; step s2l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; step s1u: UPDATE foo SET key = 2; step s1r: ROLLBACK TO f; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1c: COMMIT; starting permutation: s2l s1s s1u s2c s1r s1l s1c step s2l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1s: SAVEPOINT f; step s1u: UPDATE foo SET key = 2; <waiting ...> step s2c: COMMIT; step s1u: <... completed> step s1r: ROLLBACK TO f; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1c: COMMIT; starting permutation: s2l s1s s2c s1u s1r s1l s1c step s2l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1s: SAVEPOINT f; step s2c: COMMIT; step s1u: UPDATE foo SET key = 2; step s1r: ROLLBACK TO f; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1c: COMMIT; starting permutation: s2l s2c s1s s1u s1r s1l s1c step s2l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; step s1s: SAVEPOINT f; step s1u: UPDATE foo SET key = 2; step s1r: ROLLBACK TO f; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1c: COMMIT; diff --git a/src/test/isolation/expected/alter-table-1.out b/src/test/isolation/expected/alter-table-1.out index dd5d8b11b6..5e88174be4 100644 --- a/src/test/isolation/expected/alter-table-1.out +++ b/src/test/isolation/expected/alter-table-1.out @@ -8,16 +8,20 @@ step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 sc1 s2 at2 rx1 sc2 wx rx3 c2 @@ -27,17 +31,21 @@ step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc2: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 sc1 s2 at2 rx1 wx sc2 rx3 c2 @@ -47,17 +55,21 @@ step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 sc1 s2 at2 rx1 wx rx3 sc2 c2 @@ -67,16 +79,20 @@ step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; @@ -87,16 +103,20 @@ step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; @@ -106,18 +126,22 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N step sc1: COMMIT; step s2: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 sc1 s2 rx1 at2 wx sc2 rx3 c2 @@ -126,18 +150,22 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N step sc1: COMMIT; step s2: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 sc1 s2 rx1 at2 wx rx3 sc2 c2 @@ -146,17 +174,21 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N step sc1: COMMIT; step s2: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; @@ -166,17 +198,21 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N step sc1: COMMIT; step s2: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; @@ -186,18 +222,22 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N step sc1: COMMIT; step s2: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 sc1 s2 rx1 wx at2 rx3 sc2 c2 @@ -206,17 +246,21 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N step sc1: COMMIT; step s2: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; @@ -226,17 +270,21 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N step sc1: COMMIT; step s2: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; @@ -246,16 +294,20 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N step sc1: COMMIT; step s2: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step c2: COMMIT; @@ -266,16 +318,20 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N step sc1: COMMIT; step s2: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; step sc2: COMMIT; @@ -286,16 +342,20 @@ step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N step sc1: COMMIT; step s2: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -305,19 +365,23 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 sc1 rx1 s2 at2 wx sc2 rx3 c2 @@ -325,19 +389,23 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 sc1 rx1 s2 at2 wx rx3 sc2 c2 @@ -345,18 +413,22 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; @@ -365,18 +437,22 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; @@ -385,19 +461,23 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 sc1 rx1 s2 wx at2 rx3 sc2 c2 @@ -405,18 +485,22 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; @@ -425,18 +509,22 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; @@ -445,17 +533,21 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step c2: COMMIT; @@ -465,17 +557,21 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; step sc2: COMMIT; @@ -485,17 +581,21 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -505,19 +605,23 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 sc1 rx1 wx s2 at2 rx3 sc2 c2 @@ -525,18 +629,22 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; @@ -545,18 +653,22 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; @@ -565,17 +677,21 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step c2: COMMIT; @@ -585,17 +701,21 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; step sc2: COMMIT; @@ -605,17 +725,21 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -625,16 +749,20 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -645,16 +773,20 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; @@ -665,16 +797,20 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -685,16 +821,20 @@ step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -704,59 +844,71 @@ starting permutation: s1 at1 rx1 sc1 s2 at2 sc2 wx rx3 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 s2 at2 wx sc2 rx3 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 s2 at2 wx rx3 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; @@ -764,19 +916,23 @@ starting permutation: s1 at1 rx1 sc1 s2 at2 wx rx3 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; @@ -784,39 +940,47 @@ starting permutation: s1 at1 rx1 sc1 s2 wx at2 sc2 rx3 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 s2 wx at2 rx3 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; @@ -824,19 +988,23 @@ starting permutation: s1 at1 rx1 sc1 s2 wx at2 rx3 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; @@ -844,18 +1012,22 @@ starting permutation: s1 at1 rx1 sc1 s2 wx rx3 at2 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step c2: COMMIT; @@ -864,18 +1036,22 @@ starting permutation: s1 at1 rx1 sc1 s2 wx rx3 at2 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; step sc2: COMMIT; @@ -884,18 +1060,22 @@ starting permutation: s1 at1 rx1 sc1 s2 wx rx3 c2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -904,39 +1084,47 @@ starting permutation: s1 at1 rx1 sc1 wx s2 at2 sc2 rx3 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 wx s2 at2 rx3 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; @@ -944,19 +1132,23 @@ starting permutation: s1 at1 rx1 sc1 wx s2 at2 rx3 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; @@ -964,18 +1156,22 @@ starting permutation: s1 at1 rx1 sc1 wx s2 rx3 at2 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step c2: COMMIT; @@ -984,18 +1180,22 @@ starting permutation: s1 at1 rx1 sc1 wx s2 rx3 at2 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; step sc2: COMMIT; @@ -1004,18 +1204,22 @@ starting permutation: s1 at1 rx1 sc1 wx s2 rx3 c2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -1024,17 +1228,21 @@ starting permutation: s1 at1 rx1 sc1 wx rx3 s2 at2 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -1044,17 +1252,21 @@ starting permutation: s1 at1 rx1 sc1 wx rx3 s2 at2 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; @@ -1064,17 +1276,21 @@ starting permutation: s1 at1 rx1 sc1 wx rx3 s2 c2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -1084,17 +1300,21 @@ starting permutation: s1 at1 rx1 sc1 wx rx3 c2 s2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -1104,9 +1324,11 @@ starting permutation: s1 at1 rx1 wx sc1 s2 at2 sc2 rx3 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> @@ -1114,31 +1336,37 @@ step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 at1 rx1 wx sc1 s2 at2 rx3 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; @@ -1146,20 +1374,24 @@ starting permutation: s1 at1 rx1 wx sc1 s2 at2 rx3 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; @@ -1167,19 +1399,23 @@ starting permutation: s1 at1 rx1 wx sc1 s2 rx3 at2 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step c2: COMMIT; @@ -1188,19 +1424,23 @@ starting permutation: s1 at1 rx1 wx sc1 s2 rx3 at2 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; step sc2: COMMIT; @@ -1209,19 +1449,23 @@ starting permutation: s1 at1 rx1 wx sc1 s2 rx3 c2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -1230,18 +1474,22 @@ starting permutation: s1 at1 rx1 wx sc1 rx3 s2 at2 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -1251,18 +1499,22 @@ starting permutation: s1 at1 rx1 wx sc1 rx3 s2 at2 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; @@ -1272,18 +1524,22 @@ starting permutation: s1 at1 rx1 wx sc1 rx3 s2 c2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -1293,18 +1549,22 @@ starting permutation: s1 at1 rx1 wx sc1 rx3 c2 s2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -1313,9 +1573,11 @@ step sc2: COMMIT; starting permutation: s1 rx1 at1 sc1 s2 at2 sc2 wx rx3 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; @@ -1323,19 +1585,23 @@ step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 rx1 at1 sc1 s2 at2 wx sc2 rx3 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; @@ -1343,59 +1609,71 @@ step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 rx1 at1 sc1 s2 at2 wx rx3 sc2 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; starting permutation: s1 rx1 at1 sc1 s2 at2 wx rx3 c2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; starting permutation: s1 rx1 at1 sc1 s2 wx at2 sc2 rx3 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; @@ -1403,69 +1681,83 @@ step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 rx1 at1 sc1 s2 wx at2 rx3 sc2 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; starting permutation: s1 rx1 at1 sc1 s2 wx at2 rx3 c2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; starting permutation: s1 rx1 at1 sc1 s2 wx rx3 at2 sc2 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step c2: COMMIT; @@ -1473,19 +1765,23 @@ step c2: COMMIT; starting permutation: s1 rx1 at1 sc1 s2 wx rx3 at2 c2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; step sc2: COMMIT; @@ -1493,19 +1789,23 @@ step sc2: COMMIT; starting permutation: s1 rx1 at1 sc1 s2 wx rx3 c2 at2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -1513,9 +1813,11 @@ step sc2: COMMIT; starting permutation: s1 rx1 at1 sc1 wx s2 at2 sc2 rx3 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); @@ -1523,69 +1825,83 @@ step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 rx1 at1 sc1 wx s2 at2 rx3 sc2 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; starting permutation: s1 rx1 at1 sc1 wx s2 at2 rx3 c2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; starting permutation: s1 rx1 at1 sc1 wx s2 rx3 at2 sc2 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step c2: COMMIT; @@ -1593,19 +1909,23 @@ step c2: COMMIT; starting permutation: s1 rx1 at1 sc1 wx s2 rx3 at2 c2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; step sc2: COMMIT; @@ -1613,19 +1933,23 @@ step sc2: COMMIT; starting permutation: s1 rx1 at1 sc1 wx s2 rx3 c2 at2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -1633,18 +1957,22 @@ step sc2: COMMIT; starting permutation: s1 rx1 at1 sc1 wx rx3 s2 at2 sc2 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -1653,18 +1981,22 @@ step c2: COMMIT; starting permutation: s1 rx1 at1 sc1 wx rx3 s2 at2 c2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; @@ -1673,18 +2005,22 @@ step sc2: COMMIT; starting permutation: s1 rx1 at1 sc1 wx rx3 s2 c2 at2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -1693,18 +2029,22 @@ step sc2: COMMIT; starting permutation: s1 rx1 at1 sc1 wx rx3 c2 s2 at2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -1713,9 +2053,11 @@ step sc2: COMMIT; starting permutation: s1 rx1 at1 wx sc1 s2 at2 sc2 rx3 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; @@ -1724,19 +2066,23 @@ step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: s1 rx1 at1 wx sc1 s2 at2 rx3 sc2 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; @@ -1744,20 +2090,24 @@ step wx: <... completed> step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; starting permutation: s1 rx1 at1 wx sc1 s2 at2 rx3 c2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; @@ -1765,31 +2115,37 @@ step wx: <... completed> step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; starting permutation: s1 rx1 at1 wx sc1 s2 rx3 at2 sc2 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step c2: COMMIT; @@ -1797,20 +2153,24 @@ step c2: COMMIT; starting permutation: s1 rx1 at1 wx sc1 s2 rx3 at2 c2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; step sc2: COMMIT; @@ -1818,20 +2178,24 @@ step sc2: COMMIT; starting permutation: s1 rx1 at1 wx sc1 s2 rx3 c2 at2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -1839,19 +2203,23 @@ step sc2: COMMIT; starting permutation: s1 rx1 at1 wx sc1 rx3 s2 at2 sc2 c2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -1860,19 +2228,23 @@ step c2: COMMIT; starting permutation: s1 rx1 at1 wx sc1 rx3 s2 at2 c2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; @@ -1881,19 +2253,23 @@ step sc2: COMMIT; starting permutation: s1 rx1 at1 wx sc1 rx3 s2 c2 at2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -1902,19 +2278,23 @@ step sc2: COMMIT; starting permutation: s1 rx1 at1 wx sc1 rx3 c2 s2 at2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -1923,17 +2303,21 @@ step sc2: COMMIT; starting permutation: s1 rx1 wx at1 rx3 c2 sc1 s2 at2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at1: <... completed> step sc1: COMMIT; @@ -1944,16 +2328,20 @@ step sc2: COMMIT; starting permutation: s1 rx1 wx rx3 at1 c2 sc1 s2 at2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> step c2: COMMIT; step at1: <... completed> @@ -1965,16 +2353,20 @@ step sc2: COMMIT; starting permutation: s1 rx1 wx rx3 c2 at1 sc1 s2 at2 sc2 step s1: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; @@ -1984,9 +2376,11 @@ step sc2: COMMIT; starting permutation: rx1 s1 at1 sc1 s2 at2 sc2 wx rx3 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; @@ -1995,18 +2389,22 @@ step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: rx1 s1 at1 sc1 s2 at2 wx sc2 rx3 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; @@ -2015,18 +2413,22 @@ step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: rx1 s1 at1 sc1 s2 at2 wx rx3 sc2 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; @@ -2034,19 +2436,23 @@ step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; starting permutation: rx1 s1 at1 sc1 s2 at2 wx rx3 c2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; @@ -2054,19 +2460,23 @@ step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; starting permutation: rx1 s1 at1 sc1 s2 wx at2 sc2 rx3 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; @@ -2075,18 +2485,22 @@ step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: rx1 s1 at1 sc1 s2 wx at2 rx3 sc2 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; @@ -2094,19 +2508,23 @@ step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; starting permutation: rx1 s1 at1 sc1 s2 wx at2 rx3 c2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; @@ -2114,79 +2532,95 @@ step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; starting permutation: rx1 s1 at1 sc1 s2 wx rx3 at2 sc2 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step c2: COMMIT; starting permutation: rx1 s1 at1 sc1 s2 wx rx3 at2 c2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; step sc2: COMMIT; starting permutation: rx1 s1 at1 sc1 s2 wx rx3 c2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; starting permutation: rx1 s1 at1 sc1 wx s2 at2 sc2 rx3 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; @@ -2195,18 +2629,22 @@ step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: rx1 s1 at1 sc1 wx s2 at2 rx3 sc2 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; @@ -2214,19 +2652,23 @@ step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; starting permutation: rx1 s1 at1 sc1 wx s2 at2 rx3 c2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; @@ -2234,89 +2676,107 @@ step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; starting permutation: rx1 s1 at1 sc1 wx s2 rx3 at2 sc2 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step c2: COMMIT; starting permutation: rx1 s1 at1 sc1 wx s2 rx3 at2 c2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; step sc2: COMMIT; starting permutation: rx1 s1 at1 sc1 wx s2 rx3 c2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; starting permutation: rx1 s1 at1 sc1 wx rx3 s2 at2 sc2 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -2324,19 +2784,23 @@ step c2: COMMIT; starting permutation: rx1 s1 at1 sc1 wx rx3 s2 at2 c2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; @@ -2344,19 +2808,23 @@ step sc2: COMMIT; starting permutation: rx1 s1 at1 sc1 wx rx3 s2 c2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -2364,19 +2832,23 @@ step sc2: COMMIT; starting permutation: rx1 s1 at1 sc1 wx rx3 c2 s2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -2384,9 +2856,11 @@ step sc2: COMMIT; starting permutation: rx1 s1 at1 wx sc1 s2 at2 sc2 rx3 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> @@ -2396,18 +2870,22 @@ step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; starting permutation: rx1 s1 at1 wx sc1 s2 at2 rx3 sc2 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> @@ -2416,19 +2894,23 @@ step wx: <... completed> step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step sc2: COMMIT; step c2: COMMIT; starting permutation: rx1 s1 at1 wx sc1 s2 at2 rx3 c2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> @@ -2437,19 +2919,23 @@ step wx: <... completed> step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step sc2: COMMIT; starting permutation: rx1 s1 at1 wx sc1 s2 rx3 at2 sc2 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> @@ -2457,20 +2943,24 @@ step sc1: COMMIT; step wx: <... completed> step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; step c2: COMMIT; starting permutation: rx1 s1 at1 wx sc1 s2 rx3 at2 c2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> @@ -2478,20 +2968,24 @@ step sc1: COMMIT; step wx: <... completed> step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; step sc2: COMMIT; starting permutation: rx1 s1 at1 wx sc1 s2 rx3 c2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> @@ -2499,31 +2993,37 @@ step sc1: COMMIT; step wx: <... completed> step s2: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; starting permutation: rx1 s1 at1 wx sc1 rx3 s2 at2 sc2 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -2531,20 +3031,24 @@ step c2: COMMIT; starting permutation: rx1 s1 at1 wx sc1 rx3 s2 at2 c2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step c2: COMMIT; @@ -2552,20 +3056,24 @@ step sc2: COMMIT; starting permutation: rx1 s1 at1 wx sc1 rx3 s2 c2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s2: BEGIN; step c2: COMMIT; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -2573,20 +3081,24 @@ step sc2: COMMIT; starting permutation: rx1 s1 at1 wx sc1 rx3 c2 s2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step wx: INSERT INTO b VALUES (0); <waiting ...> step sc1: COMMIT; step wx: <... completed> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -2594,18 +3106,22 @@ step sc2: COMMIT; starting permutation: rx1 s1 wx at1 rx3 c2 sc1 s2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step wx: INSERT INTO b VALUES (0); step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at1: <... completed> step sc1: COMMIT; @@ -2615,17 +3131,21 @@ step sc2: COMMIT; starting permutation: rx1 s1 wx rx3 at1 c2 sc1 s2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> step c2: COMMIT; step at1: <... completed> @@ -2636,17 +3156,21 @@ step sc2: COMMIT; starting permutation: rx1 s1 wx rx3 c2 at1 sc1 s2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step s1: BEGIN; step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; @@ -2656,18 +3180,22 @@ step sc2: COMMIT; starting permutation: rx1 wx s1 at1 rx3 c2 sc1 s2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at1: <... completed> step sc1: COMMIT; @@ -2677,17 +3205,21 @@ step sc2: COMMIT; starting permutation: rx1 wx s1 rx3 at1 c2 sc1 s2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step s1: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> step c2: COMMIT; step at1: <... completed> @@ -2698,17 +3230,21 @@ step sc2: COMMIT; starting permutation: rx1 wx s1 rx3 c2 at1 sc1 s2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step s1: BEGIN; step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; @@ -2718,16 +3254,20 @@ step sc2: COMMIT; starting permutation: rx1 wx rx3 s1 at1 c2 sc1 s2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> step c2: COMMIT; @@ -2739,16 +3279,20 @@ step sc2: COMMIT; starting permutation: rx1 wx rx3 s1 c2 at1 sc1 s2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step s1: BEGIN; step c2: COMMIT; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; @@ -2759,16 +3303,20 @@ step sc2: COMMIT; starting permutation: rx1 wx rx3 c2 s1 at1 sc1 s2 at2 sc2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id +a_id +---- + 1 +(1 row) -1 step wx: INSERT INTO b VALUES (0); step rx3: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id +a_id +---- + 3 + 3 + 3 +(3 rows) -3 -3 -3 step c2: COMMIT; step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; diff --git a/src/test/isolation/expected/alter-table-2.out b/src/test/isolation/expected/alter-table-2.out index 33ea442113..819bc332e5 100644 --- a/src/test/isolation/expected/alter-table-2.out +++ b/src/test/isolation/expected/alter-table-2.out @@ -6,13 +6,17 @@ step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N step s1c: COMMIT; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; @@ -23,13 +27,17 @@ step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) N step s2a: BEGIN; step s1c: COMMIT; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; @@ -39,14 +47,18 @@ step s1a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1c: COMMIT; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; @@ -56,13 +68,17 @@ step s1a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1c: COMMIT; step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); @@ -73,13 +89,17 @@ step s1a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); <waiting ...> step s1c: COMMIT; step s2d: <... completed> @@ -92,13 +112,17 @@ step s2a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s1c: COMMIT; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; @@ -108,14 +132,18 @@ step s1a: BEGIN; step s2a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1c: COMMIT; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; @@ -125,13 +153,17 @@ step s1a: BEGIN; step s2a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1c: COMMIT; step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); @@ -142,13 +174,17 @@ step s1a: BEGIN; step s2a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); <waiting ...> step s1c: COMMIT; step s2d: <... completed> @@ -159,15 +195,19 @@ starting permutation: s1a s2a s2b s1b s1c s2c s2d s2e s2f step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s1c: COMMIT; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; @@ -176,14 +216,18 @@ starting permutation: s1a s2a s2b s1b s2c s1c s2d s2e s2f step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1c: COMMIT; step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); @@ -193,14 +237,18 @@ starting permutation: s1a s2a s2b s1b s2c s2d s1c s2e s2f step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); <waiting ...> step s1c: COMMIT; step s2d: <... completed> @@ -211,13 +259,17 @@ starting permutation: s1a s2a s2b s2c s1b s1c s2d s2e s2f step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s1c: COMMIT; step s2d: INSERT INTO b VALUES (0); @@ -228,13 +280,17 @@ starting permutation: s1a s2a s2b s2c s1b s2d s1c s2e s2f step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2d: INSERT INTO b VALUES (0); <waiting ...> step s1c: COMMIT; @@ -246,13 +302,17 @@ starting permutation: s1a s2a s2b s2c s2d s1b s2e s2f s1c step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> step s2e: INSERT INTO a VALUES (4); @@ -264,13 +324,17 @@ starting permutation: s1a s2a s2b s2c s2d s2e s1b s2f s1c step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> @@ -282,13 +346,17 @@ starting permutation: s1a s2a s2b s2c s2d s2e s2f s1b s1c step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; @@ -301,13 +369,17 @@ step s1a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s1c: COMMIT; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; @@ -317,14 +389,18 @@ step s2a: BEGIN; step s1a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1c: COMMIT; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; @@ -334,13 +410,17 @@ step s2a: BEGIN; step s1a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1c: COMMIT; step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); @@ -351,13 +431,17 @@ step s2a: BEGIN; step s1a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); <waiting ...> step s1c: COMMIT; step s2d: <... completed> @@ -368,15 +452,19 @@ starting permutation: s2a s1a s2b s1b s1c s2c s2d s2e s2f step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s1c: COMMIT; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; @@ -385,14 +473,18 @@ starting permutation: s2a s1a s2b s1b s2c s1c s2d s2e s2f step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1c: COMMIT; step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); @@ -402,14 +494,18 @@ starting permutation: s2a s1a s2b s1b s2c s2d s1c s2e s2f step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); <waiting ...> step s1c: COMMIT; step s2d: <... completed> @@ -420,13 +516,17 @@ starting permutation: s2a s1a s2b s2c s1b s1c s2d s2e s2f step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s1c: COMMIT; step s2d: INSERT INTO b VALUES (0); @@ -437,13 +537,17 @@ starting permutation: s2a s1a s2b s2c s1b s2d s1c s2e s2f step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2d: INSERT INTO b VALUES (0); <waiting ...> step s1c: COMMIT; @@ -455,13 +559,17 @@ starting permutation: s2a s1a s2b s2c s2d s1b s2e s2f s1c step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> step s2e: INSERT INTO a VALUES (4); @@ -473,13 +581,17 @@ starting permutation: s2a s1a s2b s2c s2d s2e s1b s2f s1c step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> @@ -491,13 +603,17 @@ starting permutation: s2a s1a s2b s2c s2d s2e s2f s1b s1c step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; @@ -507,16 +623,20 @@ step s1c: COMMIT; starting permutation: s2a s2b s1a s1b s1c s2c s2d s2e s2f step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s1c: COMMIT; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; @@ -524,15 +644,19 @@ step s2f: COMMIT; starting permutation: s2a s2b s1a s1b s2c s1c s2d s2e s2f step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1c: COMMIT; step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); @@ -541,15 +665,19 @@ step s2f: COMMIT; starting permutation: s2a s2b s1a s1b s2c s2d s1c s2e s2f step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); <waiting ...> step s1c: COMMIT; step s2d: <... completed> @@ -559,14 +687,18 @@ step s2f: COMMIT; starting permutation: s2a s2b s1a s2c s1b s1c s2d s2e s2f step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s1c: COMMIT; step s2d: INSERT INTO b VALUES (0); @@ -576,14 +708,18 @@ step s2f: COMMIT; starting permutation: s2a s2b s1a s2c s1b s2d s1c s2e s2f step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2d: INSERT INTO b VALUES (0); <waiting ...> step s1c: COMMIT; @@ -594,14 +730,18 @@ step s2f: COMMIT; starting permutation: s2a s2b s1a s2c s2d s1b s2e s2f s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> step s2e: INSERT INTO a VALUES (4); @@ -612,14 +752,18 @@ step s1c: COMMIT; starting permutation: s2a s2b s1a s2c s2d s2e s1b s2f s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> @@ -630,14 +774,18 @@ step s1c: COMMIT; starting permutation: s2a s2b s1a s2c s2d s2e s2f s1b s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; @@ -647,13 +795,17 @@ step s1c: COMMIT; starting permutation: s2a s2b s2c s1a s1b s1c s2d s2e s2f step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s1c: COMMIT; @@ -664,13 +816,17 @@ step s2f: COMMIT; starting permutation: s2a s2b s2c s1a s1b s2d s1c s2e s2f step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step s2d: INSERT INTO b VALUES (0); <waiting ...> @@ -682,13 +838,17 @@ step s2f: COMMIT; starting permutation: s2a s2b s2c s1a s2d s1b s2e s2f s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1a: BEGIN; step s2d: INSERT INTO b VALUES (0); step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> @@ -700,13 +860,17 @@ step s1c: COMMIT; starting permutation: s2a s2b s2c s1a s2d s2e s1b s2f s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1a: BEGIN; step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); @@ -718,13 +882,17 @@ step s1c: COMMIT; starting permutation: s2a s2b s2c s1a s2d s2e s2f s1b s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s1a: BEGIN; step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); @@ -735,13 +903,17 @@ step s1c: COMMIT; starting permutation: s2a s2b s2c s2d s1a s1b s2e s2f s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s1a: BEGIN; step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; <waiting ...> @@ -753,13 +925,17 @@ step s1c: COMMIT; starting permutation: s2a s2b s2c s2d s1a s2e s1b s2f s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s1a: BEGIN; step s2e: INSERT INTO a VALUES (4); @@ -771,13 +947,17 @@ step s1c: COMMIT; starting permutation: s2a s2b s2c s2d s1a s2e s2f s1b s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s1a: BEGIN; step s2e: INSERT INTO a VALUES (4); @@ -788,13 +968,17 @@ step s1c: COMMIT; starting permutation: s2a s2b s2c s2d s2e s1a s1b s2f s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s1a: BEGIN; @@ -806,13 +990,17 @@ step s1c: COMMIT; starting permutation: s2a s2b s2c s2d s2e s1a s2f s1b s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s1a: BEGIN; @@ -823,13 +1011,17 @@ step s1c: COMMIT; starting permutation: s2a s2b s2c s2d s2e s2f s1a s1b s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE; -a_id +a_id +---- + 3 +(1 row) -3 step s2d: INSERT INTO b VALUES (0); step s2e: INSERT INTO a VALUES (4); step s2f: COMMIT; diff --git a/src/test/isolation/expected/alter-table-3.out b/src/test/isolation/expected/alter-table-3.out index aad8372069..427364ee89 100644 --- a/src/test/isolation/expected/alter-table-3.out +++ b/src/test/isolation/expected/alter-table-3.out @@ -7,9 +7,11 @@ step s1c: ALTER TABLE a ENABLE TRIGGER t; step s1d: COMMIT; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s2d: COMMIT; @@ -21,9 +23,11 @@ step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2a: BEGIN; step s1d: COMMIT; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s2d: COMMIT; @@ -34,9 +38,11 @@ step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1d: COMMIT; step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" @@ -48,9 +54,11 @@ step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); <waiting ...> step s1d: COMMIT; step s2c: <... completed> @@ -64,9 +72,11 @@ step s2a: BEGIN; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s1d: COMMIT; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s2d: COMMIT; @@ -77,9 +87,11 @@ step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2a: BEGIN; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1d: COMMIT; step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" @@ -91,9 +103,11 @@ step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2a: BEGIN; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); <waiting ...> step s1d: COMMIT; step s2c: <... completed> @@ -105,9 +119,11 @@ step s1a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1c: ALTER TABLE a ENABLE TRIGGER t; step s1d: COMMIT; step s2c: INSERT INTO a VALUES (0); @@ -119,9 +135,11 @@ step s1a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2c: INSERT INTO a VALUES (0); <waiting ...> step s1d: COMMIT; @@ -134,9 +152,11 @@ step s1a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); <waiting ...> step s1c: ALTER TABLE a ENABLE TRIGGER t; step s1d: COMMIT; @@ -151,9 +171,11 @@ step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s1d: COMMIT; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s2d: COMMIT; @@ -164,9 +186,11 @@ step s2a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1d: COMMIT; step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" @@ -178,9 +202,11 @@ step s2a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); <waiting ...> step s1d: COMMIT; step s2c: <... completed> @@ -192,9 +218,11 @@ step s1a: BEGIN; step s2a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1c: ALTER TABLE a ENABLE TRIGGER t; step s1d: COMMIT; step s2c: INSERT INTO a VALUES (0); @@ -206,9 +234,11 @@ step s1a: BEGIN; step s2a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2c: INSERT INTO a VALUES (0); <waiting ...> step s1d: COMMIT; @@ -221,9 +251,11 @@ step s1a: BEGIN; step s2a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); <waiting ...> step s1c: ALTER TABLE a ENABLE TRIGGER t; step s1d: COMMIT; @@ -235,9 +267,11 @@ starting permutation: s1a s2a s2b s1b s1c s1d s2c s2d step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s1d: COMMIT; @@ -249,9 +283,11 @@ starting permutation: s1a s2a s2b s1b s1c s2c s1d s2d step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2c: INSERT INTO a VALUES (0); <waiting ...> @@ -264,9 +300,11 @@ starting permutation: s1a s2a s2b s1b s2c s1c s1d s2d step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2c: INSERT INTO a VALUES (0); <waiting ...> step s1c: ALTER TABLE a ENABLE TRIGGER t; @@ -279,9 +317,11 @@ starting permutation: s1a s2a s2b s2c s1b s1c s1d s2d step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s1b: ALTER TABLE a DISABLE TRIGGER t; @@ -293,9 +333,11 @@ starting permutation: s1a s2a s2b s2c s1b s1c s2d s1d step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s1b: ALTER TABLE a DISABLE TRIGGER t; @@ -307,9 +349,11 @@ starting permutation: s1a s2a s2b s2c s1b s2d s1c s1d step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s1b: ALTER TABLE a DISABLE TRIGGER t; @@ -321,9 +365,11 @@ starting permutation: s1a s2a s2b s2c s2d s1b s1c s1d step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s2d: COMMIT; @@ -338,9 +384,11 @@ step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s1d: COMMIT; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s2d: COMMIT; @@ -351,9 +399,11 @@ step s1a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1d: COMMIT; step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" @@ -365,9 +415,11 @@ step s1a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); <waiting ...> step s1d: COMMIT; step s2c: <... completed> @@ -379,9 +431,11 @@ step s2a: BEGIN; step s1a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1c: ALTER TABLE a ENABLE TRIGGER t; step s1d: COMMIT; step s2c: INSERT INTO a VALUES (0); @@ -393,9 +447,11 @@ step s2a: BEGIN; step s1a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2c: INSERT INTO a VALUES (0); <waiting ...> step s1d: COMMIT; @@ -408,9 +464,11 @@ step s2a: BEGIN; step s1a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); <waiting ...> step s1c: ALTER TABLE a ENABLE TRIGGER t; step s1d: COMMIT; @@ -422,9 +480,11 @@ starting permutation: s2a s1a s2b s1b s1c s1d s2c s2d step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s1d: COMMIT; @@ -436,9 +496,11 @@ starting permutation: s2a s1a s2b s1b s1c s2c s1d s2d step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; step s2c: INSERT INTO a VALUES (0); <waiting ...> @@ -451,9 +513,11 @@ starting permutation: s2a s1a s2b s1b s2c s1c s1d s2d step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2c: INSERT INTO a VALUES (0); <waiting ...> step s1c: ALTER TABLE a ENABLE TRIGGER t; @@ -466,9 +530,11 @@ starting permutation: s2a s1a s2b s2c s1b s1c s1d s2d step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s1b: ALTER TABLE a DISABLE TRIGGER t; @@ -480,9 +546,11 @@ starting permutation: s2a s1a s2b s2c s1b s1c s2d s1d step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s1b: ALTER TABLE a DISABLE TRIGGER t; @@ -494,9 +562,11 @@ starting permutation: s2a s1a s2b s2c s1b s2d s1c s1d step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s1b: ALTER TABLE a DISABLE TRIGGER t; @@ -508,9 +578,11 @@ starting permutation: s2a s1a s2b s2c s2d s1b s1c s1d step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s2d: COMMIT; @@ -521,9 +593,11 @@ step s1d: COMMIT; starting permutation: s2a s2b s1a s1b s1c s1d s2c s2d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; @@ -535,9 +609,11 @@ step s2d: COMMIT; starting permutation: s2a s2b s1a s1b s1c s2c s1d s2d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s1c: ALTER TABLE a ENABLE TRIGGER t; @@ -550,9 +626,11 @@ step s2d: COMMIT; starting permutation: s2a s2b s1a s1b s2c s1c s1d s2d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s1b: ALTER TABLE a DISABLE TRIGGER t; step s2c: INSERT INTO a VALUES (0); <waiting ...> @@ -565,9 +643,11 @@ step s2d: COMMIT; starting permutation: s2a s2b s1a s2c s1b s1c s1d s2d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" @@ -579,9 +659,11 @@ step s2d: COMMIT; starting permutation: s2a s2b s1a s2c s1b s1c s2d s1d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" @@ -593,9 +675,11 @@ step s1d: COMMIT; starting permutation: s2a s2b s1a s2c s1b s2d s1c s1d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" @@ -607,9 +691,11 @@ step s1d: COMMIT; starting permutation: s2a s2b s1a s2c s2d s1b s1c s1d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" @@ -621,9 +707,11 @@ step s1d: COMMIT; starting permutation: s2a s2b s2c s1a s1b s1c s1d s2d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s1a: BEGIN; @@ -635,9 +723,11 @@ step s2d: COMMIT; starting permutation: s2a s2b s2c s1a s1b s1c s2d s1d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s1a: BEGIN; @@ -649,9 +739,11 @@ step s1d: COMMIT; starting permutation: s2a s2b s2c s1a s1b s2d s1c s1d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s1a: BEGIN; @@ -663,9 +755,11 @@ step s1d: COMMIT; starting permutation: s2a s2b s2c s1a s2d s1b s1c s1d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s1a: BEGIN; @@ -677,9 +771,11 @@ step s1d: COMMIT; starting permutation: s2a s2b s2c s2d s1a s1b s1c s1d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: INSERT INTO a VALUES (0); ERROR: duplicate key value violates unique constraint "a_pkey" step s2d: COMMIT; diff --git a/src/test/isolation/expected/alter-table-4.out b/src/test/isolation/expected/alter-table-4.out index 1009844f06..fc579101c5 100644 --- a/src/test/isolation/expected/alter-table-4.out +++ b/src/test/isolation/expected/alter-table-4.out @@ -6,13 +6,17 @@ step s1delc1: ALTER TABLE c1 NO INHERIT p; step s2sel: SELECT SUM(a) FROM p; <waiting ...> step s1c: COMMIT; step s2sel: <... completed> -sum +sum +--- + 11 +(1 row) -11 step s2sel: SELECT SUM(a) FROM p; -sum +sum +--- + 1 +(1 row) -1 starting permutation: s1b s1delc1 s1addc2 s2sel s1c s2sel step s1b: BEGIN; @@ -21,13 +25,17 @@ step s1addc2: ALTER TABLE c2 INHERIT p; step s2sel: SELECT SUM(a) FROM p; <waiting ...> step s1c: COMMIT; step s2sel: <... completed> -sum +sum +--- + 11 +(1 row) -11 step s2sel: SELECT SUM(a) FROM p; -sum +sum +--- +101 +(1 row) -101 starting permutation: s1b s1dropc1 s2sel s1c s2sel step s1b: BEGIN; @@ -35,13 +43,17 @@ step s1dropc1: DROP TABLE c1; step s2sel: SELECT SUM(a) FROM p; <waiting ...> step s1c: COMMIT; step s2sel: <... completed> -sum +sum +--- + 1 +(1 row) -1 step s2sel: SELECT SUM(a) FROM p; -sum +sum +--- + 1 +(1 row) -1 starting permutation: s1b s1delc1 s1modc1a s2sel s1c s2sel step s1b: BEGIN; @@ -52,6 +64,8 @@ step s1c: COMMIT; step s2sel: <... completed> ERROR: attribute "a" of relation "c1" does not match parent's type step s2sel: SELECT SUM(a) FROM p; -sum +sum +--- + 1 +(1 row) -1 diff --git a/src/test/isolation/expected/async-notify.out b/src/test/isolation/expected/async-notify.out index 79427789b1..556e180589 100644 --- a/src/test/isolation/expected/async-notify.out +++ b/src/test/isolation/expected/async-notify.out @@ -8,9 +8,11 @@ step notify2: NOTIFY c2, 'payload'; notifier: NOTIFY "c2" with payload "payload" from notifier step notify3: NOTIFY c3, 'payload3'; step notifyf: SELECT pg_notify('c2', NULL); -pg_notify +pg_notify +--------- + +(1 row) - notifier: NOTIFY "c2" with payload "" from notifier starting permutation: listenc notifyd1 notifyd2 notifys1 @@ -51,13 +53,17 @@ step notify1: NOTIFY c1; step notify2: NOTIFY c2, 'payload'; step notify3: NOTIFY c3, 'payload3'; step notifyf: SELECT pg_notify('c2', NULL); -pg_notify +pg_notify +--------- + +(1 row) - step lcheck: SELECT 1 AS x; -x +x +- +1 +(1 row) -1 listener: NOTIFY "c1" with payload "" from notifier listener: NOTIFY "c2" with payload "payload" from notifier listener: NOTIFY "c2" with payload "" from notifier @@ -71,14 +77,18 @@ step notify2: NOTIFY c2, 'payload'; notifier: NOTIFY "c2" with payload "payload" from notifier step notify3: NOTIFY c3, 'payload3'; step notifyf: SELECT pg_notify('c2', NULL); -pg_notify +pg_notify +--------- + +(1 row) - notifier: NOTIFY "c2" with payload "" from notifier step lcheck: SELECT 1 AS x; -x +x +- +1 +(1 row) -1 listener: NOTIFY "c1" with payload "" from notifier listener: NOTIFY "c2" with payload "payload" from notifier listener: NOTIFY "c2" with payload "" from notifier @@ -98,14 +108,20 @@ starting permutation: llisten lbegin usage bignotify usage step llisten: LISTEN c1; LISTEN c2; step lbegin: BEGIN; step usage: SELECT pg_notification_queue_usage() > 0 AS nonzero; -nonzero +nonzero +------- +f +(1 row) -f step bignotify: SELECT count(pg_notify('c1', s::text)) FROM generate_series(1, 1000) s; -count +count +----- + 1000 +(1 row) -1000 step usage: SELECT pg_notification_queue_usage() > 0 AS nonzero; -nonzero +nonzero +------- +t +(1 row) -t diff --git a/src/test/isolation/expected/classroom-scheduling.out b/src/test/isolation/expected/classroom-scheduling.out index f02638c0b5..1d7c885bc0 100644 --- a/src/test/isolation/expected/classroom-scheduling.out +++ b/src/test/isolation/expected/classroom-scheduling.out @@ -2,28 +2,36 @@ Parsed test spec with 2 sessions starting permutation: rx1 wy1 c1 ry2 wx2 c2 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step c1: COMMIT; step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 1 +(1 row) -1 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step c2: COMMIT; starting permutation: rx1 wy1 ry2 c1 wx2 c2 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step c1: COMMIT; step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; ERROR: could not serialize access due to read/write dependencies among transactions @@ -31,14 +39,18 @@ step c2: COMMIT; starting permutation: rx1 wy1 ry2 wx2 c1 c2 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step c1: COMMIT; step c2: COMMIT; @@ -46,14 +58,18 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rx1 wy1 ry2 wx2 c2 c1 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step c2: COMMIT; step c1: COMMIT; @@ -61,13 +77,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rx1 ry2 wy1 c1 wx2 c2 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step c1: COMMIT; step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; @@ -76,13 +96,17 @@ step c2: COMMIT; starting permutation: rx1 ry2 wy1 wx2 c1 c2 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step c1: COMMIT; @@ -91,13 +115,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rx1 ry2 wy1 wx2 c2 c1 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step c2: COMMIT; @@ -106,13 +134,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rx1 ry2 wx2 wy1 c1 c2 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step c1: COMMIT; @@ -121,13 +153,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rx1 ry2 wx2 wy1 c2 c1 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step c2: COMMIT; @@ -136,13 +172,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rx1 ry2 wx2 c2 wy1 c1 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step c2: COMMIT; step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); @@ -151,13 +191,17 @@ step c1: COMMIT; starting permutation: ry2 rx1 wy1 c1 wx2 c2 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step c1: COMMIT; step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; @@ -166,13 +210,17 @@ step c2: COMMIT; starting permutation: ry2 rx1 wy1 wx2 c1 c2 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step c1: COMMIT; @@ -181,13 +229,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: ry2 rx1 wy1 wx2 c2 c1 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step c2: COMMIT; @@ -196,13 +248,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: ry2 rx1 wx2 wy1 c1 c2 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step c1: COMMIT; @@ -211,13 +267,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: ry2 rx1 wx2 wy1 c2 c1 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step c2: COMMIT; @@ -226,13 +286,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: ry2 rx1 wx2 c2 wy1 c1 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step c2: COMMIT; step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); @@ -241,14 +305,18 @@ step c1: COMMIT; starting permutation: ry2 wx2 rx1 wy1 c1 c2 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step c1: COMMIT; step c2: COMMIT; @@ -256,14 +324,18 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: ry2 wx2 rx1 wy1 c2 c1 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step c2: COMMIT; step c1: COMMIT; @@ -271,14 +343,18 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: ry2 wx2 rx1 c2 wy1 c1 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 0 +(1 row) -0 step c2: COMMIT; step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); ERROR: could not serialize access due to read/write dependencies among transactions @@ -286,14 +362,18 @@ step c1: COMMIT; starting permutation: ry2 wx2 c2 rx1 wy1 c1 step ry2: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:30'; -count +count +----- + 0 +(1 row) -0 step wx2: UPDATE room_reservation SET start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 13:30', end_time = TIMESTAMP WITH TIME ZONE '2010-04-01 14:30' WHERE room_id = '101' AND start_time = TIMESTAMP WITH TIME ZONE '2010-04-01 10:00'; step c2: COMMIT; step rx1: SELECT count(*) FROM room_reservation WHERE room_id = '101' AND start_time < TIMESTAMP WITH TIME ZONE '2010-04-01 14:00' AND end_time > TIMESTAMP WITH TIME ZONE '2010-04-01 13:00'; -count +count +----- + 1 +(1 row) -1 step wy1: INSERT INTO room_reservation VALUES ('101', TIMESTAMP WITH TIME ZONE '2010-04-01 13:00', TIMESTAMP WITH TIME ZONE '2010-04-01 14:00', 'Carol'); step c1: COMMIT; diff --git a/src/test/isolation/expected/create-trigger.out b/src/test/isolation/expected/create-trigger.out index 8deb64a8c0..7f9867804d 100644 --- a/src/test/isolation/expected/create-trigger.out +++ b/src/test/isolation/expected/create-trigger.out @@ -6,9 +6,11 @@ step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s1c: COMMIT; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; step s2d: COMMIT; @@ -18,9 +20,11 @@ step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s2a: BEGIN; step s1c: COMMIT; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; step s2d: COMMIT; @@ -29,9 +33,11 @@ step s1a: BEGIN; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1c: COMMIT; step s2c: UPDATE a SET i = 4 WHERE i = 3; step s2d: COMMIT; @@ -41,9 +47,11 @@ step s1a: BEGIN; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; <waiting ...> step s1c: COMMIT; step s2c: <... completed> @@ -55,9 +63,11 @@ step s2a: BEGIN; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s1c: COMMIT; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; step s2d: COMMIT; @@ -66,9 +76,11 @@ step s1a: BEGIN; step s2a: BEGIN; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1c: COMMIT; step s2c: UPDATE a SET i = 4 WHERE i = 3; step s2d: COMMIT; @@ -78,9 +90,11 @@ step s1a: BEGIN; step s2a: BEGIN; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; <waiting ...> step s1c: COMMIT; step s2c: <... completed> @@ -90,9 +104,11 @@ starting permutation: s1a s2a s2b s1b s1c s2c s2d step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s1c: COMMIT; step s2c: UPDATE a SET i = 4 WHERE i = 3; @@ -102,9 +118,11 @@ starting permutation: s1a s2a s2b s1b s2c s1c s2d step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s2c: UPDATE a SET i = 4 WHERE i = 3; <waiting ...> step s1c: COMMIT; @@ -115,9 +133,11 @@ starting permutation: s1a s2a s2b s2c s1b s2d s1c step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); <waiting ...> step s2d: COMMIT; @@ -128,9 +148,11 @@ starting permutation: s1a s2a s2b s2c s2d s1b s1c step s1a: BEGIN; step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; step s2d: COMMIT; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); @@ -142,9 +164,11 @@ step s1a: BEGIN; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s1c: COMMIT; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; step s2d: COMMIT; @@ -153,9 +177,11 @@ step s2a: BEGIN; step s1a: BEGIN; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1c: COMMIT; step s2c: UPDATE a SET i = 4 WHERE i = 3; step s2d: COMMIT; @@ -165,9 +191,11 @@ step s2a: BEGIN; step s1a: BEGIN; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; <waiting ...> step s1c: COMMIT; step s2c: <... completed> @@ -177,9 +205,11 @@ starting permutation: s2a s1a s2b s1b s1c s2c s2d step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s1c: COMMIT; step s2c: UPDATE a SET i = 4 WHERE i = 3; @@ -189,9 +219,11 @@ starting permutation: s2a s1a s2b s1b s2c s1c s2d step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s2c: UPDATE a SET i = 4 WHERE i = 3; <waiting ...> step s1c: COMMIT; @@ -202,9 +234,11 @@ starting permutation: s2a s1a s2b s2c s1b s2d s1c step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); <waiting ...> step s2d: COMMIT; @@ -215,9 +249,11 @@ starting permutation: s2a s1a s2b s2c s2d s1b s1c step s2a: BEGIN; step s1a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; step s2d: COMMIT; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); @@ -226,9 +262,11 @@ step s1c: COMMIT; starting permutation: s2a s2b s1a s1b s1c s2c s2d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s1c: COMMIT; @@ -238,9 +276,11 @@ step s2d: COMMIT; starting permutation: s2a s2b s1a s1b s2c s1c s2d step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); step s2c: UPDATE a SET i = 4 WHERE i = 3; <waiting ...> @@ -251,9 +291,11 @@ step s2d: COMMIT; starting permutation: s2a s2b s1a s2c s1b s2d s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s2c: UPDATE a SET i = 4 WHERE i = 3; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); <waiting ...> @@ -264,9 +306,11 @@ step s1c: COMMIT; starting permutation: s2a s2b s1a s2c s2d s1b s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s1a: BEGIN; step s2c: UPDATE a SET i = 4 WHERE i = 3; step s2d: COMMIT; @@ -276,9 +320,11 @@ step s1c: COMMIT; starting permutation: s2a s2b s2c s1a s1b s2d s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; step s1a: BEGIN; step s1b: CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f(); <waiting ...> @@ -289,9 +335,11 @@ step s1c: COMMIT; starting permutation: s2a s2b s2c s1a s2d s1b s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; step s1a: BEGIN; step s2d: COMMIT; @@ -301,9 +349,11 @@ step s1c: COMMIT; starting permutation: s2a s2b s2c s2d s1a s1b s1c step s2a: BEGIN; step s2b: SELECT * FROM a WHERE i = 1 FOR UPDATE; -i +i +- +1 +(1 row) -1 step s2c: UPDATE a SET i = 4 WHERE i = 3; step s2d: COMMIT; step s1a: BEGIN; diff --git a/src/test/isolation/expected/deadlock-parallel.out b/src/test/isolation/expected/deadlock-parallel.out index cf4d07e615..6fe5e24a02 100644 --- a/src/test/isolation/expected/deadlock-parallel.out +++ b/src/test/isolation/expected/deadlock-parallel.out @@ -2,13 +2,17 @@ Parsed test spec with 4 sessions starting permutation: d1a1 d2a2 e1l e2l d1a2 d2a1 d1c e1c d2c e2c step d1a1: SELECT lock_share(1,x), lock_excl(3,x) FROM bigt LIMIT 1; -lock_share lock_excl +lock_share|lock_excl +----------+--------- + 1| 1 +(1 row) -1 1 step d2a2: select lock_share(2,x) FROM bigt LIMIT 1; -lock_share +lock_share +---------- + 1 +(1 row) -1 step e1l: SELECT lock_excl(1,x) FROM bigt LIMIT 1; <waiting ...> step e2l: SELECT lock_excl(2,x) FROM bigt LIMIT 1; <waiting ...> step d1a2: SET force_parallel_mode = on; @@ -30,25 +34,35 @@ step d2a1: SET force_parallel_mode = on; RESET parallel_tuple_cost; SELECT lock_share(3,x) FROM bigt LIMIT 1; <waiting ...> step d1a2: <... completed> -sum + sum +----- +10000 +(1 row) -10000 step d1c: COMMIT; step e1l: <... completed> -lock_excl +lock_excl +--------- + 1 +(1 row) -1 step d2a1: <... completed> -sum + sum +----- +10000 +(1 row) -10000 -lock_share +lock_share +---------- + 1 +(1 row) -1 step e1c: COMMIT; step d2c: COMMIT; step e2l: <... completed> -lock_excl +lock_excl +--------- + 1 +(1 row) -1 step e2c: COMMIT; diff --git a/src/test/isolation/expected/delete-abort-savept-2.out b/src/test/isolation/expected/delete-abort-savept-2.out index f66a90c6f0..6fc991ae00 100644 --- a/src/test/isolation/expected/delete-abort-savept-2.out +++ b/src/test/isolation/expected/delete-abort-savept-2.out @@ -2,75 +2,99 @@ Parsed test spec with 2 sessions starting permutation: s1l s1svp s1d s1r s2l s1c s2c step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1svp: SAVEPOINT f; step s1d: SELECT * FROM foo FOR NO KEY UPDATE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1r: ROLLBACK TO f; step s2l: SELECT * FROM foo FOR UPDATE; <waiting ...> step s1c: COMMIT; step s2l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; starting permutation: s1l s1svp s1d s2l s1r s1c s2c step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1svp: SAVEPOINT f; step s1d: SELECT * FROM foo FOR NO KEY UPDATE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2l: SELECT * FROM foo FOR UPDATE; <waiting ...> step s1r: ROLLBACK TO f; step s1c: COMMIT; step s2l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; starting permutation: s1l s1svp s1d s1r s2l2 s1c s2c step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1svp: SAVEPOINT f; step s1d: SELECT * FROM foo FOR NO KEY UPDATE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1r: ROLLBACK TO f; step s2l2: SELECT * FROM foo FOR NO KEY UPDATE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1c: COMMIT; step s2c: COMMIT; starting permutation: s1l s1svp s1d s2l2 s1r s1c s2c step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1svp: SAVEPOINT f; step s1d: SELECT * FROM foo FOR NO KEY UPDATE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2l2: SELECT * FROM foo FOR NO KEY UPDATE; <waiting ...> step s1r: ROLLBACK TO f; step s2l2: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1c: COMMIT; step s2c: COMMIT; diff --git a/src/test/isolation/expected/delete-abort-savept.out b/src/test/isolation/expected/delete-abort-savept.out index 284aa89d35..8f70bab45d 100644 --- a/src/test/isolation/expected/delete-abort-savept.out +++ b/src/test/isolation/expected/delete-abort-savept.out @@ -2,94 +2,118 @@ Parsed test spec with 2 sessions starting permutation: s1l s1svp s1d s1r s1c s2l s2c step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1svp: SAVEPOINT f; step s1d: DELETE FROM foo; step s1r: ROLLBACK TO f; step s1c: COMMIT; step s2l: SELECT * FROM foo FOR UPDATE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; starting permutation: s1l s1svp s1d s1r s2l s1c s2c step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1svp: SAVEPOINT f; step s1d: DELETE FROM foo; step s1r: ROLLBACK TO f; step s2l: SELECT * FROM foo FOR UPDATE; <waiting ...> step s1c: COMMIT; step s2l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; starting permutation: s1l s1svp s1d s2l s1r s1c s2c step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1svp: SAVEPOINT f; step s1d: DELETE FROM foo; step s2l: SELECT * FROM foo FOR UPDATE; <waiting ...> step s1r: ROLLBACK TO f; step s1c: COMMIT; step s2l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; starting permutation: s1l s1svp s2l s1d s1r s1c s2c step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1svp: SAVEPOINT f; step s2l: SELECT * FROM foo FOR UPDATE; <waiting ...> step s1d: DELETE FROM foo; step s1r: ROLLBACK TO f; step s1c: COMMIT; step s2l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; starting permutation: s1l s2l s1svp s1d s1r s1c s2c step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2l: SELECT * FROM foo FOR UPDATE; <waiting ...> step s1svp: SAVEPOINT f; step s1d: DELETE FROM foo; step s1r: ROLLBACK TO f; step s1c: COMMIT; step s2l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; starting permutation: s2l s1l s2c s1svp s1d s1r s1c step s2l: SELECT * FROM foo FOR UPDATE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1l: SELECT * FROM foo FOR KEY SHARE; <waiting ...> step s2c: COMMIT; step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1svp: SAVEPOINT f; step s1d: DELETE FROM foo; step s1r: ROLLBACK TO f; @@ -97,14 +121,18 @@ step s1c: COMMIT; starting permutation: s2l s2c s1l s1svp s1d s1r s1c step s2l: SELECT * FROM foo FOR UPDATE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s1svp: SAVEPOINT f; step s1d: DELETE FROM foo; step s1r: ROLLBACK TO f; diff --git a/src/test/isolation/expected/detach-partition-concurrently-1.out b/src/test/isolation/expected/detach-partition-concurrently-1.out index 9b4526773e..bae53dd0b2 100644 --- a/src/test/isolation/expected/detach-partition-concurrently-1.out +++ b/src/test/isolation/expected/detach-partition-concurrently-1.out @@ -3,120 +3,154 @@ Parsed test spec with 3 sessions starting permutation: s1b s1s s2detach s1s s1c s1s step s1b: BEGIN; step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; <waiting ...> step s1s: SELECT * FROM d_listp; -a +a +- +1 +(1 row) -1 step s1c: COMMIT; step s2detach: <... completed> step s1s: SELECT * FROM d_listp; -a +a +- +1 +(1 row) -1 starting permutation: s1b s1s s2detach s1s s3s s3i s1c s3i s2drop s1s step s1b: BEGIN; step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; <waiting ...> step s1s: SELECT * FROM d_listp; -a +a +- +1 +(1 row) -1 step s3s: SELECT * FROM d_listp; -a +a +- +1 +(1 row) -1 step s3i: SELECT relpartbound IS NULL FROM pg_class where relname = 'd_listp2'; -?column? +?column? +-------- +f +(1 row) -f step s1c: COMMIT; step s2detach: <... completed> step s3i: SELECT relpartbound IS NULL FROM pg_class where relname = 'd_listp2'; -?column? +?column? +-------- +t +(1 row) -t step s2drop: DROP TABLE d_listp2; step s1s: SELECT * FROM d_listp; -a +a +- +1 +(1 row) -1 starting permutation: s1b s1s s2detach s1ins s1s s1c step s1b: BEGIN; step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; <waiting ...> step s1ins: INSERT INTO d_listp VALUES (1); step s1s: SELECT * FROM d_listp; -a +a +- +1 +1 +(2 rows) -1 -1 step s1c: COMMIT; step s2detach: <... completed> starting permutation: s1b s1s s1ins2 s2detach s1ins s1s s1c step s1b: BEGIN; step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s1ins2: INSERT INTO d_listp VALUES (2); step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; <waiting ...> step s1ins: INSERT INTO d_listp VALUES (1); step s1s: SELECT * FROM d_listp; -a +a +- +1 +1 +(2 rows) -1 -1 step s1c: COMMIT; step s2detach: <... completed> starting permutation: s1brr s1s s2detach s1ins s1s s1c step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; <waiting ...> step s1ins: INSERT INTO d_listp VALUES (1); step s1s: SELECT * FROM d_listp; -a +a +- +1 +1 +2 +(3 rows) -1 -1 -2 step s1c: COMMIT; step s2detach: <... completed> starting permutation: s1brr s1s s2detach s1s s1c step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; <waiting ...> step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s1c: COMMIT; step s2detach: <... completed> @@ -133,21 +167,27 @@ starting permutation: s1brr s1prep s1s s2detach s1s s1exec1 s3s s1dealloc s1c step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1prep: PREPARE f(int) AS INSERT INTO d_listp VALUES ($1); step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; <waiting ...> step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s1exec1: EXECUTE f(1); step s3s: SELECT * FROM d_listp; -a +a +- +1 +(1 row) -1 step s1dealloc: DEALLOCATE f; step s1c: COMMIT; step s2detach: <... completed> @@ -158,16 +198,20 @@ step s1prep: PREPARE f(int) AS INSERT INTO d_listp VALUES ($1); step s1exec2: EXECUTE f(2); step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; <waiting ...> step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +2 +(3 rows) -1 -2 -2 step s1exec2: EXECUTE f(2); step s3s: SELECT * FROM d_listp; -a +a +- +1 +(1 row) -1 step s1c: COMMIT; step s2detach: <... completed> step s1dealloc: DEALLOCATE f; @@ -176,16 +220,20 @@ starting permutation: s1brr s1prep s1s s2detach s1s s1exec2 s1c s1dealloc step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1prep: PREPARE f(int) AS INSERT INTO d_listp VALUES ($1); step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; <waiting ...> step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s1exec2: EXECUTE f(2); step s1c: COMMIT; step s2detach: <... completed> @@ -196,10 +244,12 @@ step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1prep: PREPARE f(int) AS INSERT INTO d_listp VALUES ($1); step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; <waiting ...> step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s1exec2: EXECUTE f(2); step s1c: COMMIT; step s2detach: <... completed> @@ -210,10 +260,12 @@ step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1prep1: PREPARE f(int) AS INSERT INTO d_listp VALUES (1); step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; <waiting ...> step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s1exec2: EXECUTE f(2); step s1c: COMMIT; step s2detach: <... completed> @@ -224,10 +276,12 @@ step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1prep2: PREPARE f(int) AS INSERT INTO d_listp VALUES (2); step s2detach: ALTER TABLE d_listp DETACH PARTITION d_listp2 CONCURRENTLY; <waiting ...> step s1s: SELECT * FROM d_listp; -a +a +- +1 +2 +(2 rows) -1 -2 step s1exec2: EXECUTE f(2); step s1c: COMMIT; step s2detach: <... completed> diff --git a/src/test/isolation/expected/detach-partition-concurrently-2.out b/src/test/isolation/expected/detach-partition-concurrently-2.out index 85be707b40..6f025d81f5 100644 --- a/src/test/isolation/expected/detach-partition-concurrently-2.out +++ b/src/test/isolation/expected/detach-partition-concurrently-2.out @@ -3,10 +3,12 @@ Parsed test spec with 3 sessions starting permutation: s1b s1s s2d s3i1 s1c step s1b: BEGIN; step s1s: SELECT * FROM d_lp_fk; -a +a +- +1 +2 +(2 rows) -1 -2 step s2d: ALTER TABLE d_lp_fk DETACH PARTITION d_lp_fk_1 CONCURRENTLY; <waiting ...> step s3i1: INSERT INTO d_lp_fk_r VALUES (1); ERROR: insert or update on table "d_lp_fk_r" violates foreign key constraint "d_lp_fk_r_a_fkey" @@ -16,10 +18,12 @@ step s2d: <... completed> starting permutation: s1b s1s s2d s3i2 s3i2 s1c step s1b: BEGIN; step s1s: SELECT * FROM d_lp_fk; -a +a +- +1 +2 +(2 rows) -1 -2 step s2d: ALTER TABLE d_lp_fk DETACH PARTITION d_lp_fk_1 CONCURRENTLY; <waiting ...> step s3i2: INSERT INTO d_lp_fk_r VALUES (2); step s3i2: INSERT INTO d_lp_fk_r VALUES (2); @@ -29,10 +33,12 @@ step s2d: <... completed> starting permutation: s1b s1s s3i1 s2d s1c step s1b: BEGIN; step s1s: SELECT * FROM d_lp_fk; -a +a +- +1 +2 +(2 rows) -1 -2 step s3i1: INSERT INTO d_lp_fk_r VALUES (1); step s2d: ALTER TABLE d_lp_fk DETACH PARTITION d_lp_fk_1 CONCURRENTLY; ERROR: removing partition "d_lp_fk_1" violates foreign key constraint "d_lp_fk_r_a_fkey1" @@ -41,10 +47,12 @@ step s1c: COMMIT; starting permutation: s1b s1s s3i2 s2d s1c step s1b: BEGIN; step s1s: SELECT * FROM d_lp_fk; -a +a +- +1 +2 +(2 rows) -1 -2 step s3i2: INSERT INTO d_lp_fk_r VALUES (2); step s2d: ALTER TABLE d_lp_fk DETACH PARTITION d_lp_fk_1 CONCURRENTLY; <waiting ...> step s1c: COMMIT; @@ -53,10 +61,12 @@ step s2d: <... completed> starting permutation: s1b s1s s3b s2d s3i1 s1c s3c step s1b: BEGIN; step s1s: SELECT * FROM d_lp_fk; -a +a +- +1 +2 +(2 rows) -1 -2 step s3b: BEGIN; step s2d: ALTER TABLE d_lp_fk DETACH PARTITION d_lp_fk_1 CONCURRENTLY; <waiting ...> step s3i1: INSERT INTO d_lp_fk_r VALUES (1); diff --git a/src/test/isolation/expected/detach-partition-concurrently-3.out b/src/test/isolation/expected/detach-partition-concurrently-3.out index 7ac22a6b15..e7fb5f8307 100644 --- a/src/test/isolation/expected/detach-partition-concurrently-3.out +++ b/src/test/isolation/expected/detach-partition-concurrently-3.out @@ -4,24 +4,30 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1describe s1alter step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; step s1describe: SELECT 'd3_listp' AS root, * FROM pg_partition_tree('d3_listp') UNION ALL SELECT 'd3_listp1', * FROM pg_partition_tree('d3_listp1'); -root relid parentrelid isleaf level +root |relid |parentrelid|isleaf|level +---------+---------+-----------+------+----- +d3_listp |d3_listp | |f | 0 +d3_listp |d3_listp2|d3_listp |t | 1 +d3_listp1|d3_listp1| |t | 0 +(3 rows) -d3_listp d3_listp f 0 -d3_listp d3_listp2 d3_listp t 1 -d3_listp1 d3_listp1 t 0 step s1alter: ALTER TABLE d3_listp1 ALTER a DROP NOT NULL; ERROR: cannot alter partition "d3_listp1" with an incomplete detach @@ -29,14 +35,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1insert s1c step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1insert: INSERT INTO d3_listp VALUES (1); @@ -47,36 +57,46 @@ starting permutation: s2snitch s1brr s1s s2detach s1cancel s1insert s1c s1spart step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1insert: INSERT INTO d3_listp VALUES (1); step s1c: COMMIT; step s1spart: SELECT * FROM d3_listp1; -a +a +- +1 +1 +(2 rows) -1 -1 starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1insertpart step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; @@ -86,24 +106,30 @@ starting permutation: s2snitch s1b s1s s2detach2 s1cancel s1c s1brr s1insert s1s step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach2: ALTER TABLE d3_listp DETACH PARTITION d3_listp2 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach2: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1insert: INSERT INTO d3_listp VALUES (1); step s1s: SELECT * FROM d3_listp; -a +a +- +1 +1 +(2 rows) -1 -1 step s1insert: INSERT INTO d3_listp VALUES (1); step s1c: COMMIT; @@ -111,84 +137,108 @@ starting permutation: s2snitch s1b s1s s2detach2 s1cancel s1c s1brr s1s s1insert step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach2: ALTER TABLE d3_listp DETACH PARTITION d3_listp2 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach2: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s1insert: INSERT INTO d3_listp VALUES (1); step s1s: SELECT * FROM d3_listp; -a +a +- +1 +1 +(2 rows) -1 -1 step s1c: COMMIT; starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1drop s1list step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; step s1drop: DROP TABLE d3_listp; step s1list: SELECT relname FROM pg_catalog.pg_class WHERE relname LIKE 'd3_listp%' ORDER BY 1; -relname +relname +------- +(0 rows) starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1trunc s1spart step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; step s1trunc: TRUNCATE TABLE d3_listp; step s1spart: SELECT * FROM d3_listp1; -a +a +- +1 +(1 row) -1 starting permutation: s2snitch s1b s1s s2detach s1cancel s1noop s2detach2 s1c step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1noop: @@ -200,14 +250,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1noop s2detachfinal s1 step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1noop: @@ -220,14 +274,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1droppart s2detach step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; @@ -238,14 +296,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s2begin s2drop s1s step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; @@ -254,29 +316,37 @@ step s2drop: DROP TABLE d3_listp1; step s1s: SELECT * FROM d3_listp; <waiting ...> step s2commit: COMMIT; step s1s: <... completed> -a +a +- +(0 rows) starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1b s1spart s2detachfinal s1c step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; step s1b: BEGIN; step s1spart: SELECT * FROM d3_listp1; -a +a +- +1 +(1 row) -1 step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE; <waiting ...> step s1c: COMMIT; step s2detachfinal: <... completed> @@ -285,20 +355,26 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1b s1s s2detachfin step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +(0 rows) step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE; step s1c: COMMIT; @@ -307,22 +383,28 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s1b s1spart s2detac step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; step s1b: BEGIN; step s1spart: SELECT * FROM d3_listp1; -a +a +- +1 +(1 row) -1 step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE; <waiting ...> step s1c: COMMIT; step s2detachfinal: <... completed> @@ -331,14 +413,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s2begin s2detachfin step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; @@ -350,14 +436,18 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s2begin s2detachfin step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; @@ -366,22 +456,28 @@ step s2detachfinal: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 FINALIZE; step s1spart: SELECT * FROM d3_listp1; <waiting ...> step s2commit: COMMIT; step s1spart: <... completed> -a +a +- +1 +(1 row) -1 starting permutation: s2snitch s1b s1s s2detach s1cancel s1c s2begin s2detachfinal s1insertpart s2commit step s2snitch: INSERT INTO d3_pid SELECT pg_backend_pid(); step s1b: BEGIN; step s1s: SELECT * FROM d3_listp; -a +a +- +1 +(1 row) -1 step s2detach: ALTER TABLE d3_listp DETACH PARTITION d3_listp1 CONCURRENTLY; <waiting ...> step s1cancel: SELECT pg_cancel_backend(pid) FROM d3_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1c: COMMIT; diff --git a/src/test/isolation/expected/detach-partition-concurrently-4.out b/src/test/isolation/expected/detach-partition-concurrently-4.out index d49736a17d..d728ecdf4c 100644 --- a/src/test/isolation/expected/detach-partition-concurrently-4.out +++ b/src/test/isolation/expected/detach-partition-concurrently-4.out @@ -4,15 +4,19 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1insert s1c step s2snitch: insert into d4_pid select pg_backend_pid(); step s1b: begin; step s1s: select * from d4_primary; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s1cancel: select pg_cancel_backend(pid) from d4_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1insert: insert into d4_fk values (1); @@ -23,10 +27,12 @@ starting permutation: s2snitch s1b s1s s2detach s1insert s1c step s2snitch: insert into d4_pid select pg_backend_pid(); step s1b: begin; step s1s: select * from d4_primary; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s1insert: insert into d4_fk values (1); ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" @@ -37,15 +43,19 @@ starting permutation: s2snitch s1brr s1s s2detach s1cancel s1insert s1c step s2snitch: insert into d4_pid select pg_backend_pid(); step s1brr: begin isolation level repeatable read; step s1s: select * from d4_primary; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s1cancel: select pg_cancel_backend(pid) from d4_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1insert: insert into d4_fk values (1); @@ -56,10 +66,12 @@ starting permutation: s2snitch s1brr s1s s2detach s1insert s1c step s2snitch: insert into d4_pid select pg_backend_pid(); step s1brr: begin isolation level repeatable read; step s1s: select * from d4_primary; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s1insert: insert into d4_fk values (1); ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" @@ -73,15 +85,19 @@ step s1declare: declare f cursor for select * from d4_primary; step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s1cancel: select pg_cancel_backend(pid) from d4_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1fetchall: fetch all from f; -a +a +- +1 +2 +(2 rows) -1 -2 step s1insert: insert into d4_fk values (1); ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" step s1c: commit; @@ -92,10 +108,12 @@ step s1b: begin; step s1declare: declare f cursor for select * from d4_primary; step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s1fetchall: fetch all from f; -a +a +- +1 +2 +(2 rows) -1 -2 step s1insert: insert into d4_fk values (1); ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" step s2detach: <... completed> @@ -108,8 +126,10 @@ step s1declare: declare f cursor for select * from d4_primary; step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s1cancel: select pg_cancel_backend(pid) from d4_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1svpt: savepoint f; @@ -117,10 +137,12 @@ step s1insert: insert into d4_fk values (1); ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" step s1rollback: rollback to f; step s1fetchall: fetch all from f; -a +a +- +1 +2 +(2 rows) -1 -2 step s1c: commit; starting permutation: s2snitch s1b s1declare s2detach s1svpt s1insert s1rollback s1fetchall s1c @@ -133,10 +155,12 @@ step s1insert: insert into d4_fk values (1); ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" step s1rollback: rollback to f; step s1fetchall: fetch all from f; -a +a +- +1 +2 +(2 rows) -1 -2 step s1c: commit; step s2detach: <... completed> @@ -147,12 +171,16 @@ step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; step s1declare: declare f cursor for select * from d4_primary; step s1cancel: select pg_cancel_backend(pid) from d4_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s1fetchall: fetch all from f; -a +a +- +2 +(1 row) -2 step s1insert: insert into d4_fk values (1); ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" step s1c: commit; @@ -163,9 +191,11 @@ step s1b: begin; step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; step s1declare: declare f cursor for select * from d4_primary; step s1fetchall: fetch all from f; -a +a +- +2 +(1 row) -2 step s1insert: insert into d4_fk values (1); ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" step s1c: commit; @@ -177,16 +207,20 @@ step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; step s1declare: declare f cursor for select * from d4_primary; step s1cancel: select pg_cancel_backend(pid) from d4_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s1svpt: savepoint f; step s1insert: insert into d4_fk values (1); ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" step s1rollback: rollback to f; step s1fetchall: fetch all from f; -a +a +- +2 +(1 row) -2 step s1c: commit; starting permutation: s2snitch s1b s2detach s1declare s1svpt s1insert s1rollback s1fetchall s1c @@ -199,9 +233,11 @@ step s1insert: insert into d4_fk values (1); ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" step s1rollback: rollback to f; step s1fetchall: fetch all from f; -a +a +- +2 +(1 row) -2 step s1c: commit; starting permutation: s2snitch s1brr s1declare2 s1fetchone s2detach s1cancel s1updcur s1c @@ -209,14 +245,18 @@ step s2snitch: insert into d4_pid select pg_backend_pid(); step s1brr: begin isolation level repeatable read; step s1declare2: declare f cursor for select * from d4_fk where a = 2; step s1fetchone: fetch 1 from f; -a +a +- +2 +(1 row) -2 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s1cancel: select pg_cancel_backend(pid) from d4_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1updcur: update d4_fk set a = 1 where current of f; @@ -228,9 +268,11 @@ step s2snitch: insert into d4_pid select pg_backend_pid(); step s1brr: begin isolation level repeatable read; step s1declare2: declare f cursor for select * from d4_fk where a = 2; step s1fetchone: fetch 1 from f; -a +a +- +2 +(1 row) -2 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s1updcur: update d4_fk set a = 1 where current of f; ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" @@ -242,9 +284,11 @@ step s2snitch: insert into d4_pid select pg_backend_pid(); step s1brr: begin isolation level repeatable read; step s1declare2: declare f cursor for select * from d4_fk where a = 2; step s1fetchone: fetch 1 from f; -a +a +- +2 +(1 row) -2 step s1updcur: update d4_fk set a = 1 where current of f; step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s1c: commit; @@ -255,10 +299,12 @@ starting permutation: s2snitch s1b s1s s2detach s3insert s1c step s2snitch: insert into d4_pid select pg_backend_pid(); step s1b: begin; step s1s: select * from d4_primary; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s3insert: insert into d4_fk values (1); ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" @@ -269,10 +315,12 @@ starting permutation: s2snitch s1b s1s s2detach s3brr s3insert s3commit s1cancel step s2snitch: insert into d4_pid select pg_backend_pid(); step s1b: begin; step s1s: select * from d4_primary; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s3brr: begin isolation level repeatable read; step s3insert: insert into d4_fk values (1); @@ -280,8 +328,10 @@ ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk step s3commit: commit; step s1cancel: select pg_cancel_backend(pid) from d4_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1c: commit; @@ -290,10 +340,12 @@ starting permutation: s2snitch s1b s1s s2detach s3brr s3insert s3commit s1c step s2snitch: insert into d4_pid select pg_backend_pid(); step s1b: begin; step s1s: select * from d4_primary; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s3brr: begin isolation level repeatable read; step s3insert: insert into d4_fk values (1); @@ -306,24 +358,30 @@ starting permutation: s2snitch s1brr s1s s2detach s1cancel s1noop s3vacfreeze s1 step s2snitch: insert into d4_pid select pg_backend_pid(); step s1brr: begin isolation level repeatable read; step s1s: select * from d4_primary; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s1cancel: select pg_cancel_backend(pid) from d4_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1noop: step s3vacfreeze: vacuum freeze pg_catalog.pg_inherits; step s1s: select * from d4_primary; -a +a +- +1 +2 +(2 rows) -1 -2 step s1insert: insert into d4_fk values (1); ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" step s1c: commit; @@ -332,23 +390,29 @@ starting permutation: s2snitch s1b s1s s2detach s1cancel s1noop s3vacfreeze s1s step s2snitch: insert into d4_pid select pg_backend_pid(); step s1b: begin; step s1s: select * from d4_primary; -a +a +- +1 +2 +(2 rows) -1 -2 step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; <waiting ...> step s1cancel: select pg_cancel_backend(pid) from d4_pid; pg_cancel_backend +----------------- +t +(1 row) -t step s2detach: <... completed> ERROR: canceling statement due to user request step s1noop: step s3vacfreeze: vacuum freeze pg_catalog.pg_inherits; step s1s: select * from d4_primary; -a +a +- +2 +(1 row) -2 step s1insert: insert into d4_fk values (1); ERROR: insert or update on table "d4_fk" violates foreign key constraint "d4_fk_a_fkey" step s1c: commit; diff --git a/src/test/isolation/expected/drop-index-concurrently-1.out b/src/test/isolation/expected/drop-index-concurrently-1.out index 8e6adb66bb..97e1a6e779 100644 --- a/src/test/isolation/expected/drop-index-concurrently-1.out +++ b/src/test/isolation/expected/drop-index-concurrently-1.out @@ -4,41 +4,53 @@ starting permutation: noseq chkiso prepi preps begin explaini explains select2 d step noseq: SET enable_seqscan = false; step chkiso: SELECT (setting in ('read committed','read uncommitted')) AS is_read_committed FROM pg_settings WHERE name = 'default_transaction_isolation'; is_read_committed +----------------- +t +(1 row) -t step prepi: PREPARE getrow_idx AS SELECT * FROM test_dc WHERE data=34 ORDER BY id,data; step preps: PREPARE getrow_seq AS SELECT * FROM test_dc WHERE data::text=34::text ORDER BY id,data; step begin: BEGIN; step explaini: EXPLAIN (COSTS OFF) EXECUTE getrow_idx; -QUERY PLAN - -Sort - Sort Key: id +QUERY PLAN +---------------------------------------------- +Sort + Sort Key: id -> Index Scan using test_dc_data on test_dc - Index Cond: (data = 34) -step explains: EXPLAIN (COSTS OFF) EXECUTE getrow_seq; -QUERY PLAN + Index Cond: (data = 34) +(4 rows) -Sort - Sort Key: id, data +step explains: EXPLAIN (COSTS OFF) EXECUTE getrow_seq; +QUERY PLAN +---------------------------------------------- +Sort + Sort Key: id, data -> Index Scan using test_dc_pkey on test_dc - Filter: ((data)::text = '34'::text) + Filter: ((data)::text = '34'::text) +(4 rows) + step select2: SELECT * FROM test_dc WHERE data=34 ORDER BY id,data; -id data +id|data +--+---- +34| 34 +(1 row) -34 34 step drop: DROP INDEX CONCURRENTLY test_dc_data; <waiting ...> step insert2: INSERT INTO test_dc(data) SELECT * FROM generate_series(1, 100); step end2: COMMIT; step selecti: EXECUTE getrow_idx; -id data + id|data +---+---- + 34| 34 +134| 34 +(2 rows) -34 34 -134 34 step selects: EXECUTE getrow_seq; -id data + id|data +---+---- + 34| 34 +134| 34 +(2 rows) -34 34 -134 34 step end: COMMIT; step drop: <... completed> diff --git a/src/test/isolation/expected/drop-index-concurrently-1_2.out b/src/test/isolation/expected/drop-index-concurrently-1_2.out index 87d07955d0..04612d3cac 100644 --- a/src/test/isolation/expected/drop-index-concurrently-1_2.out +++ b/src/test/isolation/expected/drop-index-concurrently-1_2.out @@ -4,39 +4,51 @@ starting permutation: noseq chkiso prepi preps begin explaini explains select2 d step noseq: SET enable_seqscan = false; step chkiso: SELECT (setting in ('read committed','read uncommitted')) AS is_read_committed FROM pg_settings WHERE name = 'default_transaction_isolation'; is_read_committed +----------------- +f +(1 row) -f step prepi: PREPARE getrow_idx AS SELECT * FROM test_dc WHERE data=34 ORDER BY id,data; step preps: PREPARE getrow_seq AS SELECT * FROM test_dc WHERE data::text=34::text ORDER BY id,data; step begin: BEGIN; step explaini: EXPLAIN (COSTS OFF) EXECUTE getrow_idx; -QUERY PLAN - -Sort - Sort Key: id +QUERY PLAN +---------------------------------------------- +Sort + Sort Key: id -> Index Scan using test_dc_data on test_dc - Index Cond: (data = 34) -step explains: EXPLAIN (COSTS OFF) EXECUTE getrow_seq; -QUERY PLAN + Index Cond: (data = 34) +(4 rows) -Sort - Sort Key: id, data +step explains: EXPLAIN (COSTS OFF) EXECUTE getrow_seq; +QUERY PLAN +---------------------------------------------- +Sort + Sort Key: id, data -> Index Scan using test_dc_pkey on test_dc - Filter: ((data)::text = '34'::text) + Filter: ((data)::text = '34'::text) +(4 rows) + step select2: SELECT * FROM test_dc WHERE data=34 ORDER BY id,data; -id data +id|data +--+---- +34| 34 +(1 row) -34 34 step drop: DROP INDEX CONCURRENTLY test_dc_data; <waiting ...> step insert2: INSERT INTO test_dc(data) SELECT * FROM generate_series(1, 100); step end2: COMMIT; step selecti: EXECUTE getrow_idx; -id data +id|data +--+---- +34| 34 +(1 row) -34 34 step selects: EXECUTE getrow_seq; -id data +id|data +--+---- +34| 34 +(1 row) -34 34 step end: COMMIT; step drop: <... completed> diff --git a/src/test/isolation/expected/eval-plan-qual-trigger.out b/src/test/isolation/expected/eval-plan-qual-trigger.out index 833834afaa..f6714c2e59 100644 --- a/src/test/isolation/expected/eval-plan-qual-trigger.out +++ b/src/test/isolation/expected/eval-plan-qual-trigger.out @@ -10,21 +10,29 @@ starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -37,9 +45,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 step s1_c: COMMIT; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: upd: text key-a = text key-a: t @@ -53,35 +63,47 @@ step s2_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +(1 row) -key-a val-a-s1-ups1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s1_r s2_upd_a_data s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -94,9 +116,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 step s1_r: ROLLBACK; s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t @@ -110,15 +134,19 @@ step s2_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s1_c s2_del_a s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -126,21 +154,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -153,9 +189,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 step s1_c: COMMIT; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: upd: text key-a = text key-a: t @@ -169,14 +207,18 @@ step s2_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s1_r s2_del_a s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -184,21 +226,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -211,9 +261,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 step s1_r: ROLLBACK; s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t @@ -227,34 +279,46 @@ step s2_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -267,9 +331,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -286,35 +352,47 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +(1 row) -key-a val-a-s1-ups1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -327,9 +405,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -344,15 +424,19 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -360,21 +444,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -387,9 +479,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -406,15 +500,19 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +(1 row) -key-a val-a-s1-ups1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -422,21 +520,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -449,9 +555,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -466,15 +574,19 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -482,21 +594,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -509,9 +629,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -524,13 +646,17 @@ step s2_upd_a_data: step s1_c: COMMIT; s2: NOTICE: upd: text key-b = text key-a: f step s2_upd_a_data: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -538,21 +664,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -565,9 +699,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -582,15 +718,19 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_a_i s1_trig_rep_a_d s1_b_rc s2_b_rc s1_ins_a s2_ins_a s1_c s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -598,19 +738,25 @@ step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s2) step s2_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s2') RETURNING *; <waiting ...> step s1_c: COMMIT; @@ -618,9 +764,11 @@ step s2_ins_a: <... completed> ERROR: duplicate key value violates unique constraint "trigtest_pkey" step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_a_i s1_trig_rep_a_d s1_b_rc s2_b_rc s1_ins_a s2_ins_a s1_r s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -628,32 +776,42 @@ step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s2) step s2_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s2') RETURNING *; <waiting ...> step s1_r: ROLLBACK; s2: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s2) step s2_ins_a: <... completed> -key data +key |data +-----+-------- +key-a|val-a-s2 +(1 row) -key-a val-a-s2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-a|val-a-s2 +(1 row) -key-a val-a-s2 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upsert_a_data s1_c s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -665,23 +823,31 @@ step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH R s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-b,val-b-s1) s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-b,val-b-s1) step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -694,9 +860,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2) step s2_upsert_a_data: INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2') @@ -713,15 +881,19 @@ s2: NOTICE: upk: text val-a-s1-ups1 <> text mismatch: t s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2) s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2) step s2_upsert_a_data: <... completed> -key data +key |data +-----+---------------------- +key-a|val-a-s1-ups1-upserts2 +(1 row) -key-a val-a-s1-ups1-upserts2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+---------------------- +key-a|val-a-s1-ups1-upserts2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1-upserts2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upsert_a_data s1_c s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -733,23 +905,31 @@ step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH R s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-b,val-b-s1) s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-b,val-b-s1) step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -762,9 +942,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2) step s2_upsert_a_data: INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2') @@ -781,15 +963,19 @@ s2: NOTICE: upk: text val-a-s1-ups1 <> text mismatch: t s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2) s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2) step s2_upsert_a_data: <... completed> -key data +key |data +-----+---------------------- +key-a|val-a-s1-ups1-upserts2 +(1 row) -key-a val-a-s1-ups1-upserts2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+---------------------- +key-a|val-a-s1-ups1-upserts2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1-upserts2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_b_rc s2_b_rc s1_ins_a s2_upsert_a_data s1_c s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -799,19 +985,25 @@ step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH R step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2) step s2_upsert_a_data: INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2') @@ -828,14 +1020,18 @@ s2: NOTICE: upk: text val-a-s1 <> text mismatch: t s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-upserts2) s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-upserts2) step s2_upsert_a_data: <... completed> -key data +key |data +-----+----------------- +key-a|val-a-s1-upserts2 +(1 row) -key-a val-a-s1-upserts2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+----------------- +key-a|val-a-s1-upserts2 +(1 row) -key-a val-a-s1-upserts2 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_b_rc s2_b_rc s1_ins_a s2_upsert_a_data s1_r s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -845,19 +1041,25 @@ step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH R step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2) step s2_upsert_a_data: INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2') @@ -871,14 +1073,18 @@ step s2_upsert_a_data: step s1_r: ROLLBACK; s2: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2) step s2_upsert_a_data: <... completed> -key data +key |data +-----+----------- +key-a|val-a-upss2 +(1 row) -key-a val-a-upss2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+----------- +key-a|val-a-upss2 +(1 row) -key-a val-a-upss2 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_b_rc s2_b_rc s1_ins_a s1_upd_a_data s2_upsert_a_data s1_c s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -888,19 +1094,25 @@ step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH R step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -912,9 +1124,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2) step s2_upsert_a_data: INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2') @@ -931,14 +1145,18 @@ s2: NOTICE: upk: text val-a-s1-ups1 <> text mismatch: t s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2) s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-upserts2) step s2_upsert_a_data: <... completed> -key data +key |data +-----+---------------------- +key-a|val-a-s1-ups1-upserts2 +(1 row) -key-a val-a-s1-ups1-upserts2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+---------------------- +key-a|val-a-s1-ups1-upserts2 +(1 row) -key-a val-a-s1-ups1-upserts2 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_b_rc s2_b_rc s1_ins_a s1_upd_a_data s2_upsert_a_data s1_r s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -948,19 +1166,25 @@ step s1_trig_rep_a_i: CREATE TRIGGER rep_a_i AFTER INSERT ON trigtest FOR EACH R step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -972,9 +1196,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2) step s2_upsert_a_data: INSERT INTO trigtest VALUES ('key-a', 'val-a-upss2') @@ -988,33 +1214,45 @@ step s2_upsert_a_data: step s1_r: ROLLBACK; s2: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-upss2) step s2_upsert_a_data: <... completed> -key data +key |data +-----+----------- +key-a|val-a-upss2 +(1 row) -key-a val-a-upss2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+----------- +key-a|val-a-upss2 +(1 row) -key-a val-a-upss2 starting permutation: s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1026,9 +1264,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1044,34 +1284,46 @@ s2: NOTICE: upk: text val-a-s1-ups1 <> text mismatch: t s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1-ups1) new: (key-a,val-a-s1-ups1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +(1 row) -key-a val-a-s1-ups1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------------ +key-a|val-a-s1-ups1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1083,9 +1335,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1099,35 +1353,47 @@ step s1_r: ROLLBACK; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_del_a s1_c s2_c s0_rep step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1139,9 +1405,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_del_a: @@ -1157,34 +1425,46 @@ s2: NOTICE: upk: text val-a-s1-ups1 <> text mismatch: t s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1-ups1) new: <NULL> step s2_del_a: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_upd_a_data s2_del_a s1_r s2_c s0_rep step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1196,9 +1476,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_del_a: @@ -1212,34 +1494,46 @@ step s1_r: ROLLBACK; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> step s2_del_a: <... completed> -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1251,9 +1545,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1266,33 +1562,45 @@ step s2_upd_a_data: step s1_c: COMMIT; s2: NOTICE: upd: text key-b = text key-a: f step s2_upd_a_data: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1304,9 +1612,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1320,34 +1630,46 @@ step s1_r: ROLLBACK; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_a_d s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_del_a s1_c s2_c s0_rep step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1359,9 +1681,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_del_a: @@ -1374,32 +1698,44 @@ step s2_del_a: step s1_c: COMMIT; s2: NOTICE: upd: text key-b = text key-a: f step s2_del_a: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_a_d s1_ins_a s1_ins_b s1_b_rc s2_b_rc s1_del_a s2_del_a s1_r s2_c s0_rep step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: upd: text key-b = text key-a: f @@ -1411,9 +1747,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_del_a: @@ -1427,34 +1765,46 @@ step s1_r: ROLLBACK; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> step s2_del_a: <... completed> -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_upd_a_tob s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upk: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1) @@ -1467,9 +1817,11 @@ step s1_upd_a_tob: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +(1 row) -key-b val-a-s1-tobs1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1483,34 +1835,46 @@ step s1_c: COMMIT; s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: upd: text key-c = text key-a: f step s2_upd_a_data: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +key-c|val-c-s1 +(2 rows) -key-b val-a-s1-tobs1 -key-c val-c-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_upd_a_tob s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upk: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1) @@ -1523,9 +1887,11 @@ step s1_upd_a_tob: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +(1 row) -key-b val-a-s1-tobs1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1540,35 +1906,47 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-c = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-c|val-c-s1 +(2 rows) -key-a val-a-s1-ups2 -key-c val-c-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_upd_a_tob s2_upd_b_data s1_c s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upk: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1) @@ -1581,9 +1959,11 @@ step s1_upd_a_tob: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +(1 row) -key-b val-a-s1-tobs1 s2: NOTICE: upd: text key-a = text key-b: f s2: NOTICE: upd: text key-c = text key-b: f step s2_upd_b_data: @@ -1593,35 +1973,47 @@ step s2_upd_b_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key|data +---+---- +(0 rows) step s1_c: COMMIT; step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +key-c|val-c-s1 +(2 rows) -key-b val-a-s1-tobs1 -key-c val-c-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_upd_a_tob s2_upd_all_data s1_c s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upk: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1) @@ -1634,9 +2026,11 @@ step s1_upd_a_tob: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +(1 row) -key-b val-a-s1-tobs1 s2: NOTICE: upd: text key-a <> text mismatch: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_all_data: @@ -1656,16 +2050,20 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-b,val-a-s1-tobs1) new: (key-b,val-a-s1-tobs1-ups2) s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-c,val-c-s1) new: (key-c,val-c-s1-ups2) step s2_upd_all_data: <... completed> -key data +key |data +-----+------------------- +key-b|val-a-s1-tobs1-ups2 +key-c|val-c-s1-ups2 +(2 rows) -key-b val-a-s1-tobs1-ups2 -key-c val-c-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------------- +key-b|val-a-s1-tobs1-ups2 +key-c|val-c-s1-ups2 +(2 rows) -key-b val-a-s1-tobs1-ups2 -key-c val-c-s1-ups2 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -1673,21 +2071,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -1700,9 +2106,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1715,13 +2123,17 @@ step s2_upd_a_data: step s1_c: COMMIT; s2: NOTICE: upd: text key-c = text key-a: f step s2_upd_a_data: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_del_a s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -1729,21 +2141,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -1756,9 +2176,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -1773,35 +2195,47 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-c = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-c|val-c-s1 +(2 rows) -key-a val-a-s1-ups2 -key-c val-c-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_a_d s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_del_a s2_del_a s1_c s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -1814,9 +2248,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_del_a: @@ -1829,33 +2265,45 @@ step s2_del_a: step s1_c: COMMIT; s2: NOTICE: upd: text key-c = text key-a: f step s2_del_a: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_a_d s1_ins_a s1_ins_c s1_b_rc s2_b_rc s1_del_a s2_del_a s1_r s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_c: INSERT INTO trigtest VALUES ('key-c', 'val-c-s1') RETURNING *; -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -1868,9 +2316,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_del_a: @@ -1885,14 +2335,18 @@ s2: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (k s2: NOTICE: upd: text key-c = text key-a: f s2: NOTICE: trigger: name rep_a_d; when: AFTER; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> step s2_del_a: <... completed> -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-c|val-c-s1 +(1 row) -key-c val-c-s1 starting permutation: s1_trig_rep_b_i s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_i s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_b s1_b_rc s2_b_rc s1_ins_a s1_upd_b_data s2_upd_b_data s1_del_b s1_upd_a_tob s1_c s2_c s0_rep step s1_trig_rep_b_i: CREATE TRIGGER rep_b_i BEFORE INSERT ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -1904,23 +2358,31 @@ step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH R s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-b,val-b-s1) s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-b,val-b-s1) step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rc: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: trigger: name rep_b_i; when: BEFORE; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) s1: NOTICE: trigger: name rep_a_i; when: AFTER; lev: ROWs; op: INSERT; old: <NULL> new: (key-a,val-a-s1) step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s1: NOTICE: upd: text key-b = text key-b: t s1: NOTICE: upk: text val-b-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-b,val-b-s1) new: (key-b,val-b-s1-ups1) @@ -1933,9 +2395,11 @@ step s1_upd_b_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-b|val-b-s1-ups1 +(1 row) -key-b val-b-s1-ups1 s2: NOTICE: upd: text key-b = text key-b: t s2: NOTICE: upk: text val-b-s1 <> text mismatch: t step s2_upd_b_data: @@ -1957,9 +2421,11 @@ step s1_del_b: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+------------- +key-b|val-b-s1-ups1 +(1 row) -key-b val-b-s1-ups1 s1: NOTICE: upk: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-b,val-a-s1-tobs1) @@ -1971,38 +2437,52 @@ step s1_upd_a_tob: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +(1 row) -key-b val-a-s1-tobs1 step s1_c: COMMIT; step s2_upd_b_data: <... completed> -key data +key|data +---+---- +(0 rows) step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------------- +key-b|val-a-s1-tobs1 +(1 row) -key-b val-a-s1-tobs1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rr s2_b_rr s1_upd_a_data s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -2015,9 +2495,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -2032,30 +2514,40 @@ step s2_upd_a_data: <... completed> ERROR: could not serialize access due to concurrent update step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups1 -key-b val-b-s1 starting permutation: s1_trig_rep_b_u s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rr s2_b_rr s1_upd_a_data s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups1) @@ -2068,9 +2560,11 @@ step s1_upd_a_data: noisy_oper('upk', data, '<>', 'mismatch') RETURNING *; -key data +key |data +-----+------------- +key-a|val-a-s1-ups1 +(1 row) -key-a val-a-s1-ups1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -2085,15 +2579,19 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rr s2_b_rr s1_del_a s2_upd_a_data s1_c s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -2101,21 +2599,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -2128,9 +2634,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -2145,9 +2653,11 @@ step s2_upd_a_data: <... completed> ERROR: could not serialize access due to concurrent delete step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 starting permutation: s1_trig_rep_b_d s1_trig_rep_b_u s1_trig_rep_a_d s1_trig_rep_a_u s1_ins_a s1_ins_b s1_b_rr s2_b_rr s1_del_a s2_upd_a_data s1_r s2_c s0_rep step s1_trig_rep_b_d: CREATE TRIGGER rep_b_d BEFORE DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); @@ -2155,21 +2665,29 @@ step s1_trig_rep_b_u: CREATE TRIGGER rep_b_u BEFORE UPDATE ON trigtest FOR EACH step s1_trig_rep_a_d: CREATE TRIGGER rep_a_d AFTER DELETE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_trig_rep_a_u: CREATE TRIGGER rep_a_u AFTER UPDATE ON trigtest FOR EACH ROW EXECUTE PROCEDURE trig_report(); step s1_ins_a: INSERT INTO trigtest VALUES ('key-a', 'val-a-s1') RETURNING *; -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 step s1_ins_b: INSERT INTO trigtest VALUES ('key-b', 'val-b-s1') RETURNING *; -key data +key |data +-----+-------- +key-b|val-b-s1 +(1 row) -key-b val-b-s1 step s1_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2_b_rr: BEGIN ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 s1: NOTICE: upd: text key-a = text key-a: t s1: NOTICE: upk: text val-a-s1 <> text mismatch: t s1: NOTICE: trigger: name rep_b_d; when: BEFORE; lev: ROWs; op: DELETE; old: (key-a,val-a-s1) new: <NULL> @@ -2182,9 +2700,11 @@ step s1_del_a: noisy_oper('upk', data, '<>', 'mismatch') RETURNING * -key data +key |data +-----+-------- +key-a|val-a-s1 +(1 row) -key-a val-a-s1 s2: NOTICE: upd: text key-a = text key-a: t s2: NOTICE: upk: text val-a-s1 <> text mismatch: t step s2_upd_a_data: @@ -2199,12 +2719,16 @@ s2: NOTICE: trigger: name rep_b_u; when: BEFORE; lev: ROWs; op: UPDATE; old: (k s2: NOTICE: upd: text key-b = text key-a: f s2: NOTICE: trigger: name rep_a_u; when: AFTER; lev: ROWs; op: UPDATE; old: (key-a,val-a-s1) new: (key-a,val-a-s1-ups2) step s2_upd_a_data: <... completed> -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +(1 row) -key-a val-a-s1-ups2 step s2_c: COMMIT; step s0_rep: SELECT * FROM trigtest ORDER BY key, data -key data +key |data +-----+------------- +key-a|val-a-s1-ups2 +key-b|val-b-s1 +(2 rows) -key-a val-a-s1-ups2 -key-b val-b-s1 diff --git a/src/test/isolation/expected/eval-plan-qual.out b/src/test/isolation/expected/eval-plan-qual.out index df8fa8b0a5..d9063500d3 100644 --- a/src/test/isolation/expected/eval-plan-qual.out +++ b/src/test/isolation/expected/eval-plan-qual.out @@ -2,261 +2,353 @@ Parsed test spec with 3 sessions starting permutation: wx1 wx2 c1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; <waiting ...> step c1: COMMIT; step wx2: <... completed> -balance +balance +------- + 850 +(1 row) -850 step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 850 +savings | 600 +(2 rows) -checking 850 -savings 600 starting permutation: wy1 wy2 c1 c2 read step wy1: UPDATE accounts SET balance = balance + 500 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 1100 +(1 row) -1100 step wy2: UPDATE accounts SET balance = balance + 1000 WHERE accountid = 'checking' AND balance < 1000 RETURNING balance; <waiting ...> step c1: COMMIT; step wy2: <... completed> -balance +balance +------- +(0 rows) step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 1100 +savings | 600 +(2 rows) -checking 1100 -savings 600 starting permutation: wx1 wx2 r1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; <waiting ...> step r1: ROLLBACK; step wx2: <... completed> -balance +balance +------- + 1050 +(1 row) -1050 step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 1050 +savings | 600 +(2 rows) -checking 1050 -savings 600 starting permutation: wy1 wy2 r1 c2 read step wy1: UPDATE accounts SET balance = balance + 500 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 1100 +(1 row) -1100 step wy2: UPDATE accounts SET balance = balance + 1000 WHERE accountid = 'checking' AND balance < 1000 RETURNING balance; <waiting ...> step r1: ROLLBACK; step wy2: <... completed> -balance +balance +------- + 1600 +(1 row) -1600 step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 1600 +savings | 600 +(2 rows) -checking 1600 -savings 600 starting permutation: wx1 d1 wx2 c1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; <waiting ...> step c1: COMMIT; step wx2: <... completed> -balance +balance +------- +(0 rows) step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +savings | 600 +(1 row) -savings 600 starting permutation: wx2 d1 c2 c1 read step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 1050 +(1 row) -1050 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; <waiting ...> step c2: COMMIT; step d1: <... completed> -balance +balance +------- + 1050 +(1 row) -1050 step c1: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +savings | 600 +(1 row) -savings 600 starting permutation: wx2 wx2 d1 c2 c1 read step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 1050 +(1 row) -1050 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 1500 +(1 row) -1500 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; <waiting ...> step c2: COMMIT; step d1: <... completed> -balance +balance +------- +(0 rows) step c1: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 1500 +savings | 600 +(2 rows) -checking 1500 -savings 600 starting permutation: wx2 d2 d1 c2 c1 read step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 1050 +(1 row) -1050 step d2: DELETE FROM accounts WHERE accountid = 'checking'; step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; <waiting ...> step c2: COMMIT; step d1: <... completed> -balance +balance +------- +(0 rows) step c1: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +savings | 600 +(1 row) -savings 600 starting permutation: wx1 d1 wx2 r1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; <waiting ...> step r1: ROLLBACK; step wx2: <... completed> -balance +balance +------- + 1050 +(1 row) -1050 step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 1050 +savings | 600 +(2 rows) -checking 1050 -savings 600 starting permutation: wx2 d1 r2 c1 read step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 1050 +(1 row) -1050 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; <waiting ...> step r2: ROLLBACK; step d1: <... completed> -balance +balance +------- + 600 +(1 row) -600 step c1: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +savings | 600 +(1 row) -savings 600 starting permutation: wx2 wx2 d1 r2 c1 read step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 1050 +(1 row) -1050 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 1500 +(1 row) -1500 step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; <waiting ...> step r2: ROLLBACK; step d1: <... completed> -balance +balance +------- + 600 +(1 row) -600 step c1: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +savings | 600 +(1 row) -savings 600 starting permutation: wx2 d2 d1 r2 c1 read step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 1050 +(1 row) -1050 step d2: DELETE FROM accounts WHERE accountid = 'checking'; step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; <waiting ...> step r2: ROLLBACK; step d1: <... completed> -balance +balance +------- + 600 +(1 row) -600 step c1: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +savings | 600 +(1 row) -savings 600 starting permutation: d1 wx2 c1 c2 read step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; -balance +balance +------- + 600 +(1 row) -600 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; <waiting ...> step c1: COMMIT; step wx2: <... completed> -balance +balance +------- +(0 rows) step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +savings | 600 +(1 row) -savings 600 starting permutation: d1 wx2 r1 c2 read step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; -balance +balance +------- + 600 +(1 row) -600 step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; <waiting ...> step r1: ROLLBACK; step wx2: <... completed> -balance +balance +------- + 1050 +(1 row) -1050 step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 1050 +savings | 600 +(2 rows) -checking 1050 -savings 600 starting permutation: wnested2 c1 c2 read s2: NOTICE: upid: text checking = text checking: t @@ -279,20 +371,26 @@ step wnested2: step c1: COMMIT; step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | -600 +savings | 600 +(2 rows) -checking -600 -savings 600 starting permutation: wx1 wxext1 wnested2 c1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step wxext1: UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 s2: NOTICE: upid: text checking = text checking: t s2: NOTICE: up: numeric 600 > numeric 200.0: t s2: NOTICE: lock_id: text checking = text checking: t @@ -322,24 +420,32 @@ s2: NOTICE: upid: text savings = text checking: f step wnested2: <... completed> step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | -800 +savings | 600 +(2 rows) -checking -800 -savings 600 starting permutation: wx1 wx1 wxext1 wnested2 c1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 200 +(1 row) -200 step wxext1: UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 s2: NOTICE: upid: text checking = text checking: t s2: NOTICE: up: numeric 600 > numeric 200.0: t s2: NOTICE: lock_id: text checking = text checking: t @@ -365,28 +471,38 @@ s2: NOTICE: upid: text savings = text checking: f step wnested2: <... completed> step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 200 +savings | 600 +(2 rows) -checking 200 -savings 600 starting permutation: wx1 wx1 wxext1 wxext1 wnested2 c1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 200 +(1 row) -200 step wxext1: UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step wxext1: UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 200 +(1 row) -200 s2: NOTICE: upid: text checking = text checking: t s2: NOTICE: up: numeric 600 > numeric 200.0: t s2: NOTICE: lock_id: text checking = text checking: t @@ -411,24 +527,32 @@ s2: NOTICE: upid: text savings = text checking: f step wnested2: <... completed> step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 200 +savings | 600 +(2 rows) -checking 200 -savings 600 starting permutation: wx1 wxext1 wxext1 wnested2 c1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step wxext1: UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step wxext1: UPDATE accounts_ext SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 200 +(1 row) -200 s2: NOTICE: upid: text checking = text checking: t s2: NOTICE: up: numeric 600 > numeric 200.0: t s2: NOTICE: lock_id: text checking = text checking: t @@ -453,16 +577,20 @@ s2: NOTICE: upid: text savings = text checking: f step wnested2: <... completed> step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 400 +savings | 600 +(2 rows) -checking 400 -savings 600 starting permutation: wx1 tocds1 wnested2 c1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step tocds1: UPDATE accounts SET accountid = 'cds' WHERE accountid = 'checking'; s2: NOTICE: upid: text checking = text checking: t s2: NOTICE: up: numeric 600 > numeric 200.0: t @@ -486,16 +614,20 @@ s2: NOTICE: upid: text savings = text checking: f step wnested2: <... completed> step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +cds | 400 +savings | 600 +(2 rows) -cds 400 -savings 600 starting permutation: wx1 tocdsext1 wnested2 c1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step tocdsext1: UPDATE accounts_ext SET accountid = 'cds' WHERE accountid = 'checking'; s2: NOTICE: upid: text checking = text checking: t s2: NOTICE: up: numeric 600 > numeric 200.0: t @@ -520,77 +652,99 @@ s2: NOTICE: upid: text savings = text checking: f step wnested2: <... completed> step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 400 +savings | 600 +(2 rows) -checking 400 -savings 600 starting permutation: wx1 updwcte c1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step updwcte: WITH doup AS (UPDATE accounts SET balance = balance + 1100 WHERE accountid = 'checking' RETURNING *) UPDATE accounts a SET balance = doup.balance + 100 FROM doup RETURNING *; <waiting ...> step c1: COMMIT; step updwcte: <... completed> -accountid balance accountid balance +accountid|balance|accountid|balance +---------+-------+---------+------- +savings | 1600|checking | 1500 +(1 row) -savings 1600 checking 1500 step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 1500 +savings | 1600 +(2 rows) -checking 1500 -savings 1600 starting permutation: wx1 updwctefail c1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step updwctefail: WITH doup AS (UPDATE accounts SET balance = balance + 1100 WHERE accountid = 'checking' RETURNING *, update_checking(999)) UPDATE accounts a SET balance = doup.balance + 100 FROM doup RETURNING *; <waiting ...> step c1: COMMIT; step updwctefail: <... completed> ERROR: tuple to be updated was already modified by an operation triggered by the current command step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 400 +savings | 600 +(2 rows) -checking 400 -savings 600 starting permutation: wx1 delwcte c1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step delwcte: WITH doup AS (UPDATE accounts SET balance = balance + 1100 WHERE accountid = 'checking' RETURNING *) DELETE FROM accounts a USING doup RETURNING *; <waiting ...> step c1: COMMIT; step delwcte: <... completed> -accountid balance accountid balance +accountid|balance|accountid|balance +---------+-------+---------+------- +savings | 600|checking | 1500 +(1 row) -savings 600 checking 1500 step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 1500 +(1 row) -checking 1500 starting permutation: wx1 delwctefail c1 c2 read step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 400 +(1 row) -400 step delwctefail: WITH doup AS (UPDATE accounts SET balance = balance + 1100 WHERE accountid = 'checking' RETURNING *, update_checking(999)) DELETE FROM accounts a USING doup RETURNING *; <waiting ...> step c1: COMMIT; step delwctefail: <... completed> ERROR: tuple to be deleted was already modified by an operation triggered by the current command step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 400 +savings | 600 +(2 rows) -checking 400 -savings 600 starting permutation: upsert1 upsert2 c1 c2 read step upsert1: @@ -613,32 +767,38 @@ step c1: COMMIT; step upsert2: <... completed> step c2: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 600 +savings | 2334 +(2 rows) -checking 600 -savings 2334 starting permutation: readp1 writep1 readp2 c1 c2 step readp1: SELECT tableoid::regclass, ctid, * FROM p WHERE b IN (0, 1) AND c = 0 FOR UPDATE; -tableoid ctid a b c - -c1 (0,1) 0 0 0 -c1 (0,4) 0 1 0 -c2 (0,1) 1 0 0 -c2 (0,4) 1 1 0 -c3 (0,1) 2 0 0 -c3 (0,4) 2 1 0 +tableoid|ctid |a|b|c +--------+-----+-+-+- +c1 |(0,1)|0|0|0 +c1 |(0,4)|0|1|0 +c2 |(0,1)|1|0|0 +c2 |(0,4)|1|1|0 +c3 |(0,1)|2|0|0 +c3 |(0,4)|2|1|0 +(6 rows) + step writep1: UPDATE p SET b = -1 WHERE a = 1 AND b = 1 AND c = 0; step readp2: SELECT tableoid::regclass, ctid, * FROM p WHERE b IN (0, 1) AND c = 0 FOR UPDATE; <waiting ...> step c1: COMMIT; step readp2: <... completed> -tableoid ctid a b c +tableoid|ctid |a|b|c +--------+-----+-+-+- +c1 |(0,1)|0|0|0 +c1 |(0,4)|0|1|0 +c2 |(0,1)|1|0|0 +c3 |(0,1)|2|0|0 +c3 |(0,4)|2|1|0 +(5 rows) -c1 (0,1) 0 0 0 -c1 (0,4) 0 1 0 -c2 (0,1) 1 0 0 -c3 (0,1) 2 0 0 -c3 (0,4) 2 1 0 step c2: COMMIT; starting permutation: writep2 returningp1 c1 c2 @@ -649,28 +809,30 @@ step returningp1: <waiting ...> step c1: COMMIT; step returningp1: <... completed> -a b c - -1 0 0 -1 0 1 -1 0 2 -1 -1 0 -1 1 1 -1 1 2 -1 -2 0 -1 2 1 -1 2 2 -1 -3 0 -2 0 0 -2 0 1 -2 0 2 -2 1 0 -2 1 1 -2 1 2 -2 2 0 -2 2 1 -2 2 2 -2 3 0 +a| b|c +-+--+- +1| 0|0 +1| 0|1 +1| 0|2 +1|-1|0 +1| 1|1 +1| 1|2 +1|-2|0 +1| 2|1 +1| 2|2 +1|-3|0 +2| 0|0 +2| 0|1 +2| 0|2 +2| 1|0 +2| 1|1 +2| 1|2 +2| 2|0 +2| 2|1 +2| 2|2 +2| 3|0 +(20 rows) + step c2: COMMIT; starting permutation: writep3a writep3b c1 c2 @@ -682,9 +844,11 @@ step c2: COMMIT; starting permutation: wx2 partiallock c2 c1 read step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 1050 +(1 row) -1050 step partiallock: SELECT * FROM accounts a1, accounts a2 WHERE a1.accountid = a2.accountid @@ -692,22 +856,28 @@ step partiallock: <waiting ...> step c2: COMMIT; step partiallock: <... completed> -accountid balance accountid balance +accountid|balance|accountid|balance +---------+-------+---------+------- +checking | 1050|checking | 600 +savings | 600|savings | 600 +(2 rows) -checking 1050 checking 600 -savings 600 savings 600 step c1: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 1050 +savings | 600 +(2 rows) -checking 1050 -savings 600 starting permutation: wx2 lockwithvalues c2 c1 read step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; -balance +balance +------- + 1050 +(1 row) -1050 step lockwithvalues: -- Reference rowmark column that differs in type from targetlist at some attno. -- See CAHU7rYZo_C4ULsAx_LAj8az9zqgrD8WDd4hTegDTMM1LMqrBsg@mail.gmail.com @@ -717,16 +887,20 @@ step lockwithvalues: <waiting ...> step c2: COMMIT; step lockwithvalues: <... completed> -accountid balance id +accountid|balance|id +---------+-------+-------- +checking | 1050|checking +savings | 600|savings +(2 rows) -checking 1050 checking -savings 600 savings step c1: COMMIT; step read: SELECT * FROM accounts ORDER BY accountid; -accountid balance +accountid|balance +---------+------- +checking | 1050 +savings | 600 +(2 rows) -checking 1050 -savings 600 starting permutation: wx2_ext partiallock_ext c2 c1 read_ext step wx2_ext: UPDATE accounts_ext SET balance = balance + 450; @@ -737,16 +911,20 @@ step partiallock_ext: <waiting ...> step c2: COMMIT; step partiallock_ext: <... completed> -accountid balance other newcol newcol2 accountid balance other newcol newcol2 +accountid|balance|other|newcol|newcol2|accountid|balance|other|newcol|newcol2 +---------+-------+-----+------+-------+---------+-------+-----+------+------- +checking | 1050|other| 42| |checking | 600|other| 42| +savings | 1150| | 42| |savings | 700| | 42| +(2 rows) -checking 1050 other 42 checking 600 other 42 -savings 1150 42 savings 700 42 step c1: COMMIT; step read_ext: SELECT * FROM accounts_ext ORDER BY accountid; -accountid balance other newcol newcol2 +accountid|balance|other|newcol|newcol2 +---------+-------+-----+------+------- +checking | 1050|other| 42| +savings | 1150| | 42| +(2 rows) -checking 1050 other 42 -savings 1150 42 starting permutation: updateforss readforss c1 c2 step updateforss: @@ -762,9 +940,11 @@ step readforss: <waiting ...> step c1: COMMIT; step readforss: <... completed> -ta_id ta_value tb_row +ta_id|ta_value |tb_row +-----+--------------+--------------- + 1|newTableAValue|(1,tableBValue) +(1 row) -1 newTableAValue (1,tableBValue) step c2: COMMIT; starting permutation: updateforcip updateforcip2 c1 c2 read_a @@ -778,9 +958,11 @@ step c1: COMMIT; step updateforcip2: <... completed> step c2: COMMIT; step read_a: SELECT * FROM table_a ORDER BY id; -id value +id|value +--+-------- + 1|newValue +(1 row) -1 newValue starting permutation: updateforcip updateforcip3 c1 c2 read_a step updateforcip: @@ -794,9 +976,11 @@ step c1: COMMIT; step updateforcip3: <... completed> step c2: COMMIT; step read_a: SELECT * FROM table_a ORDER BY id; -id value +id|value +--+-------- + 1|newValue +(1 row) -1 newValue starting permutation: wrtwcte readwcte c1 c2 step wrtwcte: UPDATE table_a SET value = 'tableAValue2' WHERE id = 1; @@ -815,9 +999,11 @@ step readwcte: step c1: COMMIT; step c2: COMMIT; step readwcte: <... completed> -id value +id|value +--+------------ + 1|tableAValue2 +(1 row) -1 tableAValue2 starting permutation: wrjt selectjoinforupdate c2 c1 step wrjt: UPDATE jointest SET data = 42 WHERE id = 7; @@ -831,25 +1017,29 @@ step selectjoinforupdate: <waiting ...> step c2: COMMIT; step selectjoinforupdate: <... completed> -QUERY PLAN - -LockRows - -> Merge Join - Merge Cond: (a.id = b.id) +QUERY PLAN +---------------------------------------------------------- +LockRows + -> Merge Join + Merge Cond: (a.id = b.id) -> Index Scan using jointest_id_idx on jointest a -> Index Scan using jointest_id_idx on jointest b -id data id data +(5 rows) + +id|data|id|data +--+----+--+---- + 1| 0| 1| 0 + 2| 0| 2| 0 + 3| 0| 3| 0 + 4| 0| 4| 0 + 5| 0| 5| 0 + 6| 0| 6| 0 + 7| 42| 7| 42 + 8| 0| 8| 0 + 9| 0| 9| 0 +10| 0|10| 0 +(10 rows) -1 0 1 0 -2 0 2 0 -3 0 3 0 -4 0 4 0 -5 0 5 0 -6 0 6 0 -7 42 7 42 -8 0 8 0 -9 0 9 0 -10 0 10 0 step c1: COMMIT; starting permutation: wrjt selectresultforupdate c2 c1 @@ -868,27 +1058,33 @@ step selectresultforupdate: <waiting ...> step c2: COMMIT; step selectresultforupdate: <... completed> -x y id value id data - -1 7 1 tableAValue 7 0 -QUERY PLAN - -LockRows - Output: 1, 7, a.id, a.value, jt.id, jt.data, jt.ctid, a.ctid - -> Nested Loop Left Join +x|y|id|value |id|data +-+-+--+-----------+--+---- +1|7| 1|tableAValue| 7| 0 +(1 row) + +QUERY PLAN +-------------------------------------------------------------------- +LockRows + Output: 1, 7, a.id, a.value, jt.id, jt.data, jt.ctid, a.ctid + -> Nested Loop Left Join Output: 1, 7, a.id, a.value, jt.id, jt.data, jt.ctid, a.ctid - -> Nested Loop - Output: jt.id, jt.data, jt.ctid - -> Seq Scan on public.jointest jt - Output: jt.id, jt.data, jt.ctid - Filter: (jt.id = 7) - -> Result - -> Seq Scan on public.table_a a - Output: a.id, a.value, a.ctid - Filter: (a.id = 1) -x y id value id data + -> Nested Loop + Output: jt.id, jt.data, jt.ctid + -> Seq Scan on public.jointest jt + Output: jt.id, jt.data, jt.ctid + Filter: (jt.id = 7) + -> Result + -> Seq Scan on public.table_a a + Output: a.id, a.value, a.ctid + Filter: (a.id = 1) +(13 rows) + +x|y|id|value |id|data +-+-+--+-----------+--+---- +1|7| 1|tableAValue| 7| 42 +(1 row) -1 7 1 tableAValue 7 42 step c1: COMMIT; starting permutation: wrtwcte multireadwcte c1 c2 @@ -902,9 +1098,11 @@ step multireadwcte: step c1: COMMIT; step c2: COMMIT; step multireadwcte: <... completed> -subid id +subid|id +-----+-- + 1| 1 +(1 row) -1 1 starting permutation: simplepartupdate complexpartupdate c1 c2 step simplepartupdate: @@ -922,9 +1120,11 @@ starting permutation: simplepartupdate_route1to2 complexpartupdate_route_err1 c1 step simplepartupdate_route1to2: update parttbl set a = 2 where c = 1 returning *; -a b c +a|b|c +-+-+- +2|1|1 +(1 row) -2 1 1 step complexpartupdate_route_err1: with u as (update another_parttbl set a = 1 returning another_parttbl.*) update parttbl p set a = u.a from u where p.a = u.a and p.c = 1 returning p.*; @@ -938,34 +1138,42 @@ starting permutation: simplepartupdate_noroute complexpartupdate_route c1 c2 step simplepartupdate_noroute: update parttbl set b = 2 where c = 1 returning *; -a b c +a|b|c +-+-+- +1|2|1 +(1 row) -1 2 1 step complexpartupdate_route: with u as (update another_parttbl set a = 1 returning another_parttbl.*) update parttbl p set a = p.b from u where p.a = u.a and p.c = 1 returning p.*; <waiting ...> step c1: COMMIT; step complexpartupdate_route: <... completed> -a b c +a|b|c +-+-+- +2|2|1 +(1 row) -2 2 1 step c2: COMMIT; starting permutation: simplepartupdate_noroute complexpartupdate_doesnt_route c1 c2 step simplepartupdate_noroute: update parttbl set b = 2 where c = 1 returning *; -a b c +a|b|c +-+-+- +1|2|1 +(1 row) -1 2 1 step complexpartupdate_doesnt_route: with u as (update another_parttbl set a = 1 returning another_parttbl.*) update parttbl p set a = 3 - p.b from u where p.a = u.a and p.c = 1 returning p.*; <waiting ...> step c1: COMMIT; step complexpartupdate_doesnt_route: <... completed> -a b c +a|b|c +-+-+- +1|2|1 +(1 row) -1 2 1 step c2: COMMIT; diff --git a/src/test/isolation/expected/fk-partitioned-2.out b/src/test/isolation/expected/fk-partitioned-2.out index 278bec4fdf..8c6c714d05 100644 --- a/src/test/isolation/expected/fk-partitioned-2.out +++ b/src/test/isolation/expected/fk-partitioned-2.out @@ -14,9 +14,11 @@ starting permutation: s1b s1d s2bs s2i s1c s2c step s1b: begin; step s1d: delete from ppk where a = 1; step s2bs: begin isolation level serializable; select 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2i: insert into pfk values (1); <waiting ...> step s1c: commit; step s2i: <... completed> @@ -36,9 +38,11 @@ step s2c: commit; starting permutation: s1b s2bs s1d s2i s1c s2c step s1b: begin; step s2bs: begin isolation level serializable; select 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s1d: delete from ppk where a = 1; step s2i: insert into pfk values (1); <waiting ...> step s1c: commit; @@ -59,9 +63,11 @@ step s1c: commit; starting permutation: s1b s2bs s2i s1d s2c s1c step s1b: begin; step s2bs: begin isolation level serializable; select 1; -?column? +?column? +-------- + 1 +(1 row) -1 step s2i: insert into pfk values (1); step s1d: delete from ppk where a = 1; <waiting ...> step s2c: commit; diff --git a/src/test/isolation/expected/freeze-the-dead.out b/src/test/isolation/expected/freeze-the-dead.out index 8e638f132f..88678bd045 100644 --- a/src/test/isolation/expected/freeze-the-dead.out +++ b/src/test/isolation/expected/freeze-the-dead.out @@ -6,13 +6,17 @@ step s2_begin: BEGIN; step s3_begin: BEGIN; step s1_update: UPDATE tab_freeze SET x = x + 1 WHERE id = 3; step s2_key_share: SELECT id FROM tab_freeze WHERE id = 3 FOR KEY SHARE; -id +id +-- + 3 +(1 row) -3 step s3_key_share: SELECT id FROM tab_freeze WHERE id = 3 FOR KEY SHARE; -id +id +-- + 3 +(1 row) -3 step s1_update: UPDATE tab_freeze SET x = x + 1 WHERE id = 3; step s1_commit: COMMIT; step s2_commit: COMMIT; @@ -24,13 +28,17 @@ step s1_selectone: SELECT * FROM tab_freeze WHERE id = 3; COMMIT; -id name x +id|name|x +--+----+- + 3| 333|2 +(1 row) -3 333 2 step s3_commit: COMMIT; step s2_vacuum: VACUUM FREEZE tab_freeze; step s1_selectall: SELECT * FROM tab_freeze ORDER BY name, id; -id name x +id|name|x +--+----+- + 1| 111|0 + 3| 333|2 +(2 rows) -1 111 0 -3 333 2 diff --git a/src/test/isolation/expected/horizons.out b/src/test/isolation/expected/horizons.out index 07bbc9832c..4150b2dee6 100644 --- a/src/test/isolation/expected/horizons.out +++ b/src/test/isolation/expected/horizons.out @@ -9,31 +9,39 @@ step ll_start: BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step pruner_query_plan: EXPLAIN (COSTS OFF) SELECT * FROM horizons_tst ORDER BY data; -QUERY PLAN - +QUERY PLAN +----------------------------------------------------------- Index Only Scan using horizons_tst_data_key on horizons_tst +(1 row) + step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_delete: DELETE FROM horizons_tst; @@ -42,17 +50,21 @@ step pruner_query: EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step ll_commit: COMMIT; step pruner_drop: DROP TABLE horizons_tst; @@ -67,31 +79,39 @@ step ll_start: BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step pruner_query_plan: EXPLAIN (COSTS OFF) SELECT * FROM horizons_tst ORDER BY data; -QUERY PLAN - +QUERY PLAN +----------------------------------------------------------- Index Only Scan using horizons_tst_data_key on horizons_tst +(1 row) + step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_delete: DELETE FROM horizons_tst; @@ -100,17 +120,21 @@ step pruner_query: EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 0 +(1 row) -0 step ll_commit: COMMIT; step pruner_drop: DROP TABLE horizons_tst; @@ -125,25 +149,31 @@ step ll_start: BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_begin: BEGIN; step pruner_delete: DELETE FROM horizons_tst; @@ -153,17 +183,21 @@ step pruner_query: EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step ll_commit: COMMIT; step pruner_commit: COMMIT; step pruner_drop: @@ -179,25 +213,31 @@ step ll_start: BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_delete: DELETE FROM horizons_tst; @@ -209,17 +249,21 @@ step pruner_query: EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step ll_commit: COMMIT; step pruner_drop: DROP TABLE horizons_tst; @@ -234,25 +278,31 @@ step ll_start: BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; SELECT 1; -?column? +?column? +-------- + 1 +(1 row) -1 step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 2 +(1 row) -2 step pruner_delete: DELETE FROM horizons_tst; @@ -264,17 +314,21 @@ step pruner_query: EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 0 +(1 row) -0 step pruner_query: SELECT explain_json($$ EXPLAIN (FORMAT json, BUFFERS, ANALYZE) SELECT * FROM horizons_tst ORDER BY data;$$)->0->'Plan'->'Heap Fetches'; -?column? +?column? +-------- + 0 +(1 row) -0 step ll_commit: COMMIT; step pruner_drop: DROP TABLE horizons_tst; diff --git a/src/test/isolation/expected/inherit-temp.out b/src/test/isolation/expected/inherit-temp.out index edfc8f906c..e6f0f220e8 100644 --- a/src/test/isolation/expected/inherit-temp.out +++ b/src/test/isolation/expected/inherit-temp.out @@ -5,29 +5,37 @@ step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2); step s1_insert_c: INSERT INTO inh_temp_child_s1 VALUES (3), (4); step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6); step s1_select_p: SELECT a FROM inh_parent; -a +a +- +1 +2 +3 +4 +(4 rows) -1 -2 -3 -4 step s1_select_c: SELECT a FROM inh_temp_child_s1; -a +a +- +3 +4 +(2 rows) -3 -4 step s2_select_p: SELECT a FROM inh_parent; -a +a +- +1 +2 +5 +6 +(4 rows) -1 -2 -5 -6 step s2_select_c: SELECT a FROM inh_temp_child_s2; -a +a +- +5 +6 +(2 rows) -5 -6 starting permutation: s1_insert_p s1_insert_c s2_insert_c s1_update_p s1_update_c s1_select_p s1_select_c s2_select_p s2_select_c step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2); @@ -36,29 +44,37 @@ step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6); step s1_update_p: UPDATE inh_parent SET a = 11 WHERE a = 1; step s1_update_c: UPDATE inh_parent SET a = 13 WHERE a IN (3, 5); step s1_select_p: SELECT a FROM inh_parent; -a + a +-- + 2 +11 + 4 +13 +(4 rows) -2 -11 -4 -13 step s1_select_c: SELECT a FROM inh_temp_child_s1; -a + a +-- + 4 +13 +(2 rows) -4 -13 step s2_select_p: SELECT a FROM inh_parent; -a + a +-- + 2 +11 + 5 + 6 +(4 rows) -2 -11 -5 -6 step s2_select_c: SELECT a FROM inh_temp_child_s2; -a +a +- +5 +6 +(2 rows) -5 -6 starting permutation: s1_insert_p s1_insert_c s2_insert_c s2_update_c s1_select_p s1_select_c s2_select_p s2_select_c step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2); @@ -66,29 +82,37 @@ step s1_insert_c: INSERT INTO inh_temp_child_s1 VALUES (3), (4); step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6); step s2_update_c: UPDATE inh_parent SET a = 15 WHERE a IN (3, 5); step s1_select_p: SELECT a FROM inh_parent; -a +a +- +1 +2 +3 +4 +(4 rows) -1 -2 -3 -4 step s1_select_c: SELECT a FROM inh_temp_child_s1; -a +a +- +3 +4 +(2 rows) -3 -4 step s2_select_p: SELECT a FROM inh_parent; -a + a +-- + 1 + 2 + 6 +15 +(4 rows) -1 -2 -6 -15 step s2_select_c: SELECT a FROM inh_temp_child_s2; -a + a +-- + 6 +15 +(2 rows) -6 -15 starting permutation: s1_insert_p s1_insert_c s2_insert_c s1_delete_p s1_delete_c s1_select_p s1_select_c s2_select_p s2_select_c step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2); @@ -97,25 +121,33 @@ step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6); step s1_delete_p: DELETE FROM inh_parent WHERE a = 2; step s1_delete_c: DELETE FROM inh_parent WHERE a IN (4, 6); step s1_select_p: SELECT a FROM inh_parent; -a +a +- +1 +3 +(2 rows) -1 -3 step s1_select_c: SELECT a FROM inh_temp_child_s1; -a +a +- +3 +(1 row) -3 step s2_select_p: SELECT a FROM inh_parent; -a +a +- +1 +5 +6 +(3 rows) -1 -5 -6 step s2_select_c: SELECT a FROM inh_temp_child_s2; -a +a +- +5 +6 +(2 rows) -5 -6 starting permutation: s1_insert_p s1_insert_c s2_insert_c s2_delete_c s1_select_p s1_select_c s2_select_p s2_select_c step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2); @@ -123,27 +155,35 @@ step s1_insert_c: INSERT INTO inh_temp_child_s1 VALUES (3), (4); step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6); step s2_delete_c: DELETE FROM inh_parent WHERE a IN (4, 6); step s1_select_p: SELECT a FROM inh_parent; -a +a +- +1 +2 +3 +4 +(4 rows) -1 -2 -3 -4 step s1_select_c: SELECT a FROM inh_temp_child_s1; -a +a +- +3 +4 +(2 rows) -3 -4 step s2_select_p: SELECT a FROM inh_parent; -a +a +- +1 +2 +5 +(3 rows) -1 -2 -5 step s2_select_c: SELECT a FROM inh_temp_child_s2; -a +a +- +5 +(1 row) -5 starting permutation: s1_insert_p s1_insert_c s2_insert_c s1_truncate_p s1_select_p s1_select_c s2_select_p s2_select_c step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2); @@ -151,21 +191,29 @@ step s1_insert_c: INSERT INTO inh_temp_child_s1 VALUES (3), (4); step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6); step s1_truncate_p: TRUNCATE inh_parent; step s1_select_p: SELECT a FROM inh_parent; -a +a +- +(0 rows) step s1_select_c: SELECT a FROM inh_temp_child_s1; -a +a +- +(0 rows) step s2_select_p: SELECT a FROM inh_parent; -a +a +- +5 +6 +(2 rows) -5 -6 step s2_select_c: SELECT a FROM inh_temp_child_s2; -a +a +- +5 +6 +(2 rows) -5 -6 starting permutation: s1_insert_p s1_insert_c s2_insert_c s2_truncate_p s1_select_p s1_select_c s2_select_p s2_select_c step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2); @@ -173,20 +221,28 @@ step s1_insert_c: INSERT INTO inh_temp_child_s1 VALUES (3), (4); step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6); step s2_truncate_p: TRUNCATE inh_parent; step s1_select_p: SELECT a FROM inh_parent; -a +a +- +3 +4 +(2 rows) -3 -4 step s1_select_c: SELECT a FROM inh_temp_child_s1; -a +a +- +3 +4 +(2 rows) -3 -4 step s2_select_p: SELECT a FROM inh_parent; -a +a +- +(0 rows) step s2_select_c: SELECT a FROM inh_temp_child_s2; -a +a +- +(0 rows) starting permutation: s1_insert_p s1_insert_c s2_insert_c s1_begin s1_truncate_p s2_select_p s1_commit @@ -198,10 +254,12 @@ step s1_truncate_p: TRUNCATE inh_parent; step s2_select_p: SELECT a FROM inh_parent; <waiting ...> step s1_commit: COMMIT; step s2_select_p: <... completed> -a +a +- +5 +6 +(2 rows) -5 -6 starting permutation: s1_insert_p s1_insert_c s2_insert_c s1_begin s1_truncate_p s2_select_c s1_commit step s1_insert_p: INSERT INTO inh_parent VALUES (1), (2); @@ -210,8 +268,10 @@ step s2_insert_c: INSERT INTO inh_temp_child_s2 VALUES (5), (6); step s1_begin: BEGIN; step s1_truncate_p: TRUNCATE inh_parent; step s2_select_c: SELECT a FROM inh_temp_child_s2; -a +a +- +5 +6 +(2 rows) -5 -6 step s1_commit: COMMIT; diff --git a/src/test/isolation/expected/insert-conflict-do-nothing-2.out b/src/test/isolation/expected/insert-conflict-do-nothing-2.out index c90002fd02..22d41d33ed 100644 --- a/src/test/isolation/expected/insert-conflict-do-nothing-2.out +++ b/src/test/isolation/expected/insert-conflict-do-nothing-2.out @@ -8,9 +8,11 @@ step c1: COMMIT; step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING; step c2: COMMIT; step show: SELECT * FROM ints; -key val +key|val +---+---------- + 1|donothing1 +(1 row) -1 donothing1 starting permutation: beginrr1 beginrr2 donothing2 c2 donothing1 c1 show step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ; @@ -20,9 +22,11 @@ step c2: COMMIT; step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING; step c1: COMMIT; step show: SELECT * FROM ints; -key val +key|val +---+---------- + 1|donothing2 +(1 row) -1 donothing2 starting permutation: beginrr1 beginrr2 donothing1 donothing2 c1 c2 show step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ; @@ -34,9 +38,11 @@ step donothing2: <... completed> ERROR: could not serialize access due to concurrent update step c2: COMMIT; step show: SELECT * FROM ints; -key val +key|val +---+---------- + 1|donothing1 +(1 row) -1 donothing1 starting permutation: beginrr1 beginrr2 donothing2 donothing1 c2 c1 show step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ; @@ -48,9 +54,11 @@ step donothing1: <... completed> ERROR: could not serialize access due to concurrent update step c1: COMMIT; step show: SELECT * FROM ints; -key val +key|val +---+---------- + 1|donothing2 +(1 row) -1 donothing2 starting permutation: begins1 begins2 donothing1 c1 donothing2 c2 show step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE; @@ -60,9 +68,11 @@ step c1: COMMIT; step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING; step c2: COMMIT; step show: SELECT * FROM ints; -key val +key|val +---+---------- + 1|donothing1 +(1 row) -1 donothing1 starting permutation: begins1 begins2 donothing2 c2 donothing1 c1 show step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE; @@ -72,9 +82,11 @@ step c2: COMMIT; step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING; step c1: COMMIT; step show: SELECT * FROM ints; -key val +key|val +---+---------- + 1|donothing2 +(1 row) -1 donothing2 starting permutation: begins1 begins2 donothing1 donothing2 c1 c2 show step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE; @@ -86,9 +98,11 @@ step donothing2: <... completed> ERROR: could not serialize access due to concurrent update step c2: COMMIT; step show: SELECT * FROM ints; -key val +key|val +---+---------- + 1|donothing1 +(1 row) -1 donothing1 starting permutation: begins1 begins2 donothing2 donothing1 c2 c1 show step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE; @@ -100,6 +114,8 @@ step donothing1: <... completed> ERROR: could not serialize access due to concurrent update step c1: COMMIT; step show: SELECT * FROM ints; -key val +key|val +---+---------- + 1|donothing2 +(1 row) -1 donothing2 diff --git a/src/test/isolation/expected/insert-conflict-do-nothing.out b/src/test/isolation/expected/insert-conflict-do-nothing.out index 0a0958f034..cadf46d065 100644 --- a/src/test/isolation/expected/insert-conflict-do-nothing.out +++ b/src/test/isolation/expected/insert-conflict-do-nothing.out @@ -6,9 +6,11 @@ step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2') ON CONFLICT step c1: COMMIT; step donothing2: <... completed> step select2: SELECT * FROM ints; -key val +key|val +---+---------- + 1|donothing1 +(1 row) -1 donothing1 step c2: COMMIT; starting permutation: donothing1 donothing2 a1 select2 c2 @@ -17,7 +19,9 @@ step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2') ON CONFLICT step a1: ABORT; step donothing2: <... completed> step select2: SELECT * FROM ints; -key val +key|val +---+---------- + 1|donothing2 +(1 row) -1 donothing2 step c2: COMMIT; diff --git a/src/test/isolation/expected/insert-conflict-do-update-2.out b/src/test/isolation/expected/insert-conflict-do-update-2.out index 05fb06f8d8..7acd1aef16 100644 --- a/src/test/isolation/expected/insert-conflict-do-update-2.out +++ b/src/test/isolation/expected/insert-conflict-do-update-2.out @@ -6,9 +6,11 @@ step insert2: INSERT INTO upsert(key, payload) VALUES('FOOFOO', 'insert2') ON CO step c1: COMMIT; step insert2: <... completed> step select2: SELECT * FROM upsert; -key payload +key |payload +------+-------------------------- +FOOFOO|insert1 updated by insert2 +(1 row) -FOOFOO insert1 updated by insert2 step c2: COMMIT; starting permutation: insert1 insert2 a1 select2 c2 @@ -17,7 +19,9 @@ step insert2: INSERT INTO upsert(key, payload) VALUES('FOOFOO', 'insert2') ON CO step a1: ABORT; step insert2: <... completed> step select2: SELECT * FROM upsert; -key payload +key |payload +------+------- +FOOFOO|insert2 +(1 row) -FOOFOO insert2 step c2: COMMIT; diff --git a/src/test/isolation/expected/insert-conflict-do-update-3.out b/src/test/isolation/expected/insert-conflict-do-update-3.out index 6600410618..2d7e0b8f18 100644 --- a/src/test/isolation/expected/insert-conflict-do-update-3.out +++ b/src/test/isolation/expected/insert-conflict-do-update-3.out @@ -12,15 +12,19 @@ step insert1: SELECT * FROM colors ORDER BY key; <waiting ...> step c2: COMMIT; step insert1: <... completed> -key color is_active +key|color|is_active +---+-----+--------- + 1|Red |f + 2|Green|f + 3|Blue |f +(3 rows) -1 Red f -2 Green f -3 Blue f step select1surprise: SELECT * FROM colors ORDER BY key; -key color is_active +key|color|is_active +---+-----+--------- + 1|Brown|t + 2|Green|f + 3|Blue |f +(3 rows) -1 Brown t -2 Green f -3 Blue f step c1: COMMIT; diff --git a/src/test/isolation/expected/insert-conflict-do-update.out b/src/test/isolation/expected/insert-conflict-do-update.out index a634918784..16c384c836 100644 --- a/src/test/isolation/expected/insert-conflict-do-update.out +++ b/src/test/isolation/expected/insert-conflict-do-update.out @@ -6,9 +6,11 @@ step insert2: INSERT INTO upsert(key, val) VALUES(1, 'insert2') ON CONFLICT (key step c1: COMMIT; step insert2: <... completed> step select2: SELECT * FROM upsert; -key val +key|val +---+-------------------------- + 1|insert1 updated by insert2 +(1 row) -1 insert1 updated by insert2 step c2: COMMIT; starting permutation: insert1 insert2 a1 select2 c2 @@ -17,7 +19,9 @@ step insert2: INSERT INTO upsert(key, val) VALUES(1, 'insert2') ON CONFLICT (key step a1: ABORT; step insert2: <... completed> step select2: SELECT * FROM upsert; -key val +key|val +---+------- + 1|insert2 +(1 row) -1 insert2 step c2: COMMIT; diff --git a/src/test/isolation/expected/insert-conflict-specconflict.out b/src/test/isolation/expected/insert-conflict-specconflict.out index 8d319296dd..bb8f950f2c 100644 --- a/src/test/isolation/expected/insert-conflict-specconflict.out +++ b/src/test/isolation/expected/insert-conflict-specconflict.out @@ -2,16 +2,20 @@ Parsed test spec with 3 sessions starting permutation: controller_locks controller_show s1_upsert s2_upsert controller_show controller_unlock_1_1 controller_unlock_2_1 controller_unlock_1_3 controller_unlock_2_3 controller_show controller_unlock_2_2 controller_show controller_unlock_1_2 controller_show step controller_locks: SELECT pg_advisory_lock(sess, lock), sess, lock FROM generate_series(1, 2) a(sess), generate_series(1,3) b(lock); -pg_advisory_locksess lock - - 1 1 - 1 2 - 1 3 - 2 1 - 2 2 - 2 3 +pg_advisory_lock|sess|lock +----------------+----+---- + | 1| 1 + | 1| 2 + | 1| 3 + | 2| 1 + | 2| 2 + | 2| 3 +(6 rows) + step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) s1: NOTICE: blurt_and_lock_123() called for k1 in session 1 s1: NOTICE: acquiring advisory lock on 3 @@ -20,66 +24,90 @@ s2: NOTICE: blurt_and_lock_123() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 3 step s2_upsert: INSERT INTO upserttest(key, data) VALUES('k1', 'inserted s2') ON CONFLICT (blurt_and_lock_123(key)) DO UPDATE SET data = upserttest.data || ' with conflict update s2'; <waiting ...> step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step controller_unlock_1_1: SELECT pg_advisory_unlock(1, 1); pg_advisory_unlock +------------------ +t +(1 row) -t step controller_unlock_2_1: SELECT pg_advisory_unlock(2, 1); pg_advisory_unlock +------------------ +t +(1 row) -t step controller_unlock_1_3: SELECT pg_advisory_unlock(1, 3); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: blurt_and_lock_123() called for k1 in session 1 s1: NOTICE: acquiring advisory lock on 2 step controller_unlock_2_3: SELECT pg_advisory_unlock(2, 3); pg_advisory_unlock +------------------ +t +(1 row) -t s2: NOTICE: blurt_and_lock_123() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 2 step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step controller_unlock_2_2: SELECT pg_advisory_unlock(2, 2); pg_advisory_unlock +------------------ +t +(1 row) -t step s2_upsert: <... completed> step controller_show: SELECT * FROM upserttest; -key data +key|data +---+----------- +k1 |inserted s2 +(1 row) -k1 inserted s2 step controller_unlock_1_2: SELECT pg_advisory_unlock(1, 2); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: blurt_and_lock_123() called for k1 in session 1 s1: NOTICE: acquiring advisory lock on 2 s1: NOTICE: blurt_and_lock_123() called for k1 in session 1 s1: NOTICE: acquiring advisory lock on 2 step s1_upsert: <... completed> step controller_show: SELECT * FROM upserttest; -key data +key|data +---+----------------------------------- +k1 |inserted s2 with conflict update s1 +(1 row) -k1 inserted s2 with conflict update s1 starting permutation: controller_locks controller_show s1_upsert s2_upsert controller_show controller_unlock_1_1 controller_unlock_2_1 controller_unlock_1_3 controller_unlock_2_3 controller_show controller_unlock_1_2 controller_show controller_unlock_2_2 controller_show step controller_locks: SELECT pg_advisory_lock(sess, lock), sess, lock FROM generate_series(1, 2) a(sess), generate_series(1,3) b(lock); -pg_advisory_locksess lock - - 1 1 - 1 2 - 1 3 - 2 1 - 2 2 - 2 3 +pg_advisory_lock|sess|lock +----------------+----+---- + | 1| 1 + | 1| 2 + | 1| 3 + | 2| 1 + | 2| 2 + | 2| 3 +(6 rows) + step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) s1: NOTICE: blurt_and_lock_123() called for k1 in session 1 s1: NOTICE: acquiring advisory lock on 3 @@ -88,66 +116,90 @@ s2: NOTICE: blurt_and_lock_123() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 3 step s2_upsert: INSERT INTO upserttest(key, data) VALUES('k1', 'inserted s2') ON CONFLICT (blurt_and_lock_123(key)) DO UPDATE SET data = upserttest.data || ' with conflict update s2'; <waiting ...> step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step controller_unlock_1_1: SELECT pg_advisory_unlock(1, 1); pg_advisory_unlock +------------------ +t +(1 row) -t step controller_unlock_2_1: SELECT pg_advisory_unlock(2, 1); pg_advisory_unlock +------------------ +t +(1 row) -t step controller_unlock_1_3: SELECT pg_advisory_unlock(1, 3); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: blurt_and_lock_123() called for k1 in session 1 s1: NOTICE: acquiring advisory lock on 2 step controller_unlock_2_3: SELECT pg_advisory_unlock(2, 3); pg_advisory_unlock +------------------ +t +(1 row) -t s2: NOTICE: blurt_and_lock_123() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 2 step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step controller_unlock_1_2: SELECT pg_advisory_unlock(1, 2); pg_advisory_unlock +------------------ +t +(1 row) -t step s1_upsert: <... completed> step controller_show: SELECT * FROM upserttest; -key data +key|data +---+----------- +k1 |inserted s1 +(1 row) -k1 inserted s1 step controller_unlock_2_2: SELECT pg_advisory_unlock(2, 2); pg_advisory_unlock +------------------ +t +(1 row) -t s2: NOTICE: blurt_and_lock_123() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 2 s2: NOTICE: blurt_and_lock_123() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 2 step s2_upsert: <... completed> step controller_show: SELECT * FROM upserttest; -key data +key|data +---+----------------------------------- +k1 |inserted s1 with conflict update s2 +(1 row) -k1 inserted s1 with conflict update s2 starting permutation: controller_locks controller_show s1_insert_toast s2_insert_toast controller_show controller_unlock_1_1 controller_unlock_2_1 controller_unlock_1_3 controller_unlock_2_3 controller_show controller_unlock_1_2 controller_show_count controller_unlock_2_2 controller_show_count step controller_locks: SELECT pg_advisory_lock(sess, lock), sess, lock FROM generate_series(1, 2) a(sess), generate_series(1,3) b(lock); -pg_advisory_locksess lock - - 1 1 - 1 2 - 1 3 - 2 1 - 2 2 - 2 3 +pg_advisory_lock|sess|lock +----------------+----+---- + | 1| 1 + | 1| 2 + | 1| 3 + | 2| 1 + | 2| 2 + | 2| 3 +(6 rows) + step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) s1: NOTICE: blurt_and_lock_123() called for k2 in session 1 s1: NOTICE: acquiring advisory lock on 3 @@ -156,66 +208,90 @@ s2: NOTICE: blurt_and_lock_123() called for k2 in session 2 s2: NOTICE: acquiring advisory lock on 3 step s2_insert_toast: INSERT INTO upserttest VALUES('k2', ctoast_large_val()) ON CONFLICT DO NOTHING; <waiting ...> step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step controller_unlock_1_1: SELECT pg_advisory_unlock(1, 1); pg_advisory_unlock +------------------ +t +(1 row) -t step controller_unlock_2_1: SELECT pg_advisory_unlock(2, 1); pg_advisory_unlock +------------------ +t +(1 row) -t step controller_unlock_1_3: SELECT pg_advisory_unlock(1, 3); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: blurt_and_lock_123() called for k2 in session 1 s1: NOTICE: acquiring advisory lock on 2 step controller_unlock_2_3: SELECT pg_advisory_unlock(2, 3); pg_advisory_unlock +------------------ +t +(1 row) -t s2: NOTICE: blurt_and_lock_123() called for k2 in session 2 s2: NOTICE: acquiring advisory lock on 2 step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step controller_unlock_1_2: SELECT pg_advisory_unlock(1, 2); pg_advisory_unlock +------------------ +t +(1 row) -t step s1_insert_toast: <... completed> step controller_show_count: SELECT COUNT(*) FROM upserttest; -count +count +----- + 1 +(1 row) -1 step controller_unlock_2_2: SELECT pg_advisory_unlock(2, 2); pg_advisory_unlock +------------------ +t +(1 row) -t s2: NOTICE: blurt_and_lock_123() called for k2 in session 2 s2: NOTICE: acquiring advisory lock on 2 s2: NOTICE: blurt_and_lock_123() called for k2 in session 2 s2: NOTICE: acquiring advisory lock on 2 step s2_insert_toast: <... completed> step controller_show_count: SELECT COUNT(*) FROM upserttest; -count +count +----- + 1 +(1 row) -1 starting permutation: controller_locks controller_show s1_begin s2_begin s1_upsert s2_upsert controller_show controller_unlock_1_1 controller_unlock_2_1 controller_unlock_1_3 controller_unlock_2_3 controller_show controller_unlock_1_2 controller_show controller_unlock_2_2 controller_show s1_commit controller_show s2_commit controller_show step controller_locks: SELECT pg_advisory_lock(sess, lock), sess, lock FROM generate_series(1, 2) a(sess), generate_series(1,3) b(lock); -pg_advisory_locksess lock - - 1 1 - 1 2 - 1 3 - 2 1 - 2 2 - 2 3 +pg_advisory_lock|sess|lock +----------------+----+---- + | 1| 1 + | 1| 2 + | 1| 3 + | 2| 1 + | 2| 2 + | 2| 3 +(6 rows) + step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step s1_begin: BEGIN; step s2_begin: BEGIN; @@ -226,81 +302,111 @@ s2: NOTICE: blurt_and_lock_123() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 3 step s2_upsert: INSERT INTO upserttest(key, data) VALUES('k1', 'inserted s2') ON CONFLICT (blurt_and_lock_123(key)) DO UPDATE SET data = upserttest.data || ' with conflict update s2'; <waiting ...> step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step controller_unlock_1_1: SELECT pg_advisory_unlock(1, 1); pg_advisory_unlock +------------------ +t +(1 row) -t step controller_unlock_2_1: SELECT pg_advisory_unlock(2, 1); pg_advisory_unlock +------------------ +t +(1 row) -t step controller_unlock_1_3: SELECT pg_advisory_unlock(1, 3); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: blurt_and_lock_123() called for k1 in session 1 s1: NOTICE: acquiring advisory lock on 2 step controller_unlock_2_3: SELECT pg_advisory_unlock(2, 3); pg_advisory_unlock +------------------ +t +(1 row) -t s2: NOTICE: blurt_and_lock_123() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 2 step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step controller_unlock_1_2: SELECT pg_advisory_unlock(1, 2); pg_advisory_unlock +------------------ +t +(1 row) -t step s1_upsert: <... completed> step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step controller_unlock_2_2: SELECT pg_advisory_unlock(2, 2); pg_advisory_unlock +------------------ +t +(1 row) -t s2: NOTICE: blurt_and_lock_123() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 2 s2: NOTICE: blurt_and_lock_123() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 2 step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step s1_commit: COMMIT; s2: NOTICE: blurt_and_lock_123() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 2 step s2_upsert: <... completed> step controller_show: SELECT * FROM upserttest; -key data +key|data +---+----------- +k1 |inserted s1 +(1 row) -k1 inserted s1 step s2_commit: COMMIT; step controller_show: SELECT * FROM upserttest; -key data +key|data +---+----------------------------------- +k1 |inserted s1 with conflict update s2 +(1 row) -k1 inserted s1 with conflict update s2 starting permutation: s1_create_non_unique_index s1_confirm_index_order controller_locks controller_show s2_begin s1_upsert s2_upsert controller_show controller_unlock_1_1 controller_unlock_2_1 controller_unlock_1_3 controller_unlock_2_3 controller_show controller_lock_2_4 controller_unlock_2_2 controller_show controller_unlock_1_2 controller_print_speculative_locks controller_unlock_2_4 s2_noop controller_print_speculative_locks s2_commit s1_noop controller_show controller_print_speculative_locks step s1_create_non_unique_index: CREATE INDEX upserttest_key_idx ON upserttest((blurt_and_lock_4(key))); step s1_confirm_index_order: SELECT 'upserttest_key_uniq_idx'::regclass::int8 < 'upserttest_key_idx'::regclass::int8; -?column? +?column? +-------- +t +(1 row) -t step controller_locks: SELECT pg_advisory_lock(sess, lock), sess, lock FROM generate_series(1, 2) a(sess), generate_series(1,3) b(lock); -pg_advisory_locksess lock - - 1 1 - 1 2 - 1 3 - 2 1 - 2 2 - 2 3 +pg_advisory_lock|sess|lock +----------------+----+---- + | 1| 1 + | 1| 2 + | 1| 3 + | 2| 1 + | 2| 2 + | 2| 3 +(6 rows) + step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step s2_begin: BEGIN; s1: NOTICE: blurt_and_lock_123() called for k1 in session 1 @@ -310,48 +416,68 @@ s2: NOTICE: blurt_and_lock_123() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 3 step s2_upsert: INSERT INTO upserttest(key, data) VALUES('k1', 'inserted s2') ON CONFLICT (blurt_and_lock_123(key)) DO UPDATE SET data = upserttest.data || ' with conflict update s2'; <waiting ...> step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step controller_unlock_1_1: SELECT pg_advisory_unlock(1, 1); pg_advisory_unlock +------------------ +t +(1 row) -t step controller_unlock_2_1: SELECT pg_advisory_unlock(2, 1); pg_advisory_unlock +------------------ +t +(1 row) -t step controller_unlock_1_3: SELECT pg_advisory_unlock(1, 3); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: blurt_and_lock_123() called for k1 in session 1 s1: NOTICE: acquiring advisory lock on 2 step controller_unlock_2_3: SELECT pg_advisory_unlock(2, 3); pg_advisory_unlock +------------------ +t +(1 row) -t s2: NOTICE: blurt_and_lock_123() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 2 step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step controller_lock_2_4: SELECT pg_advisory_lock(2, 4); pg_advisory_lock +---------------- + +(1 row) - step controller_unlock_2_2: SELECT pg_advisory_unlock(2, 2); pg_advisory_unlock +------------------ +t +(1 row) -t s2: NOTICE: blurt_and_lock_4() called for k1 in session 2 s2: NOTICE: acquiring advisory lock on 4 step controller_show: SELECT * FROM upserttest; -key data +key|data +---+---- +(0 rows) step controller_unlock_1_2: SELECT pg_advisory_unlock(1, 2); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: blurt_and_lock_4() called for k1 in session 1 s1: NOTICE: acquiring advisory lock on 4 s1: NOTICE: blurt_and_lock_123() called for k1 in session 1 @@ -367,16 +493,20 @@ step controller_print_speculative_locks: AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%' ORDER BY 1, 2, 3, 4; -application_namelocktype mode granted +application_name |locktype |mode |granted +-----------------------------------------+-------------+-------------+------- +isolation/insert-conflict-specconflict-s1|spectoken |ShareLock |f +isolation/insert-conflict-specconflict-s1|transactionid|ExclusiveLock|t +isolation/insert-conflict-specconflict-s2|spectoken |ExclusiveLock|t +isolation/insert-conflict-specconflict-s2|transactionid|ExclusiveLock|t +(4 rows) -isolation/insert-conflict-specconflict-s1spectoken ShareLock f -isolation/insert-conflict-specconflict-s1transactionid ExclusiveLock t -isolation/insert-conflict-specconflict-s2spectoken ExclusiveLock t -isolation/insert-conflict-specconflict-s2transactionid ExclusiveLock t step controller_unlock_2_4: SELECT pg_advisory_unlock(2, 4); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: blurt_and_lock_123() called for k1 in session 1 s1: NOTICE: acquiring advisory lock on 2 step s2_upsert: <... completed> @@ -390,20 +520,24 @@ step controller_print_speculative_locks: AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%' ORDER BY 1, 2, 3, 4; -application_namelocktype mode granted +application_name |locktype |mode |granted +-----------------------------------------+-------------+-------------+------- +isolation/insert-conflict-specconflict-s1|transactionid|ExclusiveLock|t +isolation/insert-conflict-specconflict-s1|transactionid|ShareLock |f +isolation/insert-conflict-specconflict-s2|transactionid|ExclusiveLock|t +(3 rows) -isolation/insert-conflict-specconflict-s1transactionid ExclusiveLock t -isolation/insert-conflict-specconflict-s1transactionid ShareLock f -isolation/insert-conflict-specconflict-s2transactionid ExclusiveLock t step s2_commit: COMMIT; s1: NOTICE: blurt_and_lock_123() called for k1 in session 1 s1: NOTICE: acquiring advisory lock on 2 step s1_upsert: <... completed> step s1_noop: step controller_show: SELECT * FROM upserttest; -key data +key|data +---+----------------------------------- +k1 |inserted s2 with conflict update s1 +(1 row) -k1 inserted s2 with conflict update s1 step controller_print_speculative_locks: SELECT pa.application_name, locktype, mode, granted FROM pg_locks pl JOIN pg_stat_activity pa USING (pid) @@ -413,5 +547,7 @@ step controller_print_speculative_locks: AND pa.application_name LIKE 'isolation/insert-conflict-specconflict-s%' ORDER BY 1, 2, 3, 4; -application_namelocktype mode granted +application_name|locktype|mode|granted +----------------+--------+----+------- +(0 rows) diff --git a/src/test/isolation/expected/lock-committed-keyupdate.out b/src/test/isolation/expected/lock-committed-keyupdate.out index 2f13a19b9a..7de6bc6860 100644 --- a/src/test/isolation/expected/lock-committed-keyupdate.out +++ b/src/test/isolation/expected/lock-committed-keyupdate.out @@ -5,492 +5,666 @@ step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s1c: COMMIT; step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b1 s1l s1u s2l s1c s1ul s2c step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b1 s1l s1u s1ul s2l s1c s2c step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s2l: <... completed> -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b1 s1l s2l s1u s1c s1hint s1ul s2c step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s1c: COMMIT; step s1hint: SELECT * FROM lcku_table; -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b1 s1l s1u s2l s1c s1hint s1ul s2c step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s1hint: SELECT * FROM lcku_table; -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b1 s1l s1u s1ul s2l s1c s1hint s2c step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s2l: <... completed> -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s1hint: SELECT * FROM lcku_table; -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s2l s1u s1c s1ul s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s1c: COMMIT; step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> ERROR: could not serialize access due to concurrent update step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s1u s2l s1c s1ul s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> ERROR: could not serialize access due to concurrent update step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s1u s1ul s2l s1c s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s2l: <... completed> ERROR: could not serialize access due to concurrent update step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s2l s1u s1c s1hint s1ul s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s1c: COMMIT; step s1hint: SELECT * FROM lcku_table; -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> ERROR: could not serialize access due to concurrent update step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s1u s2l s1c s1hint s1ul s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s1hint: SELECT * FROM lcku_table; -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> ERROR: could not serialize access due to concurrent update step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s1u s1ul s2l s1c s1hint s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s2l: <... completed> ERROR: could not serialize access due to concurrent update step s1hint: SELECT * FROM lcku_table; -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s2l s1u s1c s1ul s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s1c: COMMIT; step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> ERROR: could not serialize access due to concurrent update step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s1u s2l s1c s1ul s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> ERROR: could not serialize access due to concurrent update step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s1u s1ul s2l s1c s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s2l: <... completed> ERROR: could not serialize access due to concurrent update step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s2l s1u s1c s1hint s1ul s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s1c: COMMIT; step s1hint: SELECT * FROM lcku_table; -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> ERROR: could not serialize access due to concurrent update step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s1u s2l s1c s1hint s1ul s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s1hint: SELECT * FROM lcku_table; -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> ERROR: could not serialize access due to concurrent update step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s1u s1ul s2l s1c s1hint s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(578902068); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcku_table SET id = 2 WHERE id = 3; step s1ul: SELECT pg_advisory_unlock(578902068); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: SELECT * FROM lcku_table WHERE pg_advisory_lock(578902068) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s2l: <... completed> ERROR: could not serialize access due to concurrent update step s1hint: SELECT * FROM lcku_table; -id value +id|value +--+----- + 1|one + 2|two +(2 rows) -1 one -2 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - diff --git a/src/test/isolation/expected/lock-committed-update.out b/src/test/isolation/expected/lock-committed-update.out index 88a6f23eab..84b9ce7509 100644 --- a/src/test/isolation/expected/lock-committed-update.out +++ b/src/test/isolation/expected/lock-committed-update.out @@ -5,663 +5,927 @@ step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1c: COMMIT; step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b1 s1l s1u s2l s1c s1ul s2c step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b1 s1l s2l s1ul s1u s1c s2c step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1c: COMMIT; step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b1 s1l s1u s1ul s2l s1c s2c step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; -id value +id|value +--+----- + 1|one +(1 row) -1 one step s1c: COMMIT; step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b1 s1l s2l s1u s1c s1hint s1ul s2c step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1c: COMMIT; step s1hint: SELECT * FROM lcu_table; -id value +id|value +--+----- + 1|two +(1 row) -1 two step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b1 s1l s1u s2l s1c s1hint s1ul s2c step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s1hint: SELECT * FROM lcu_table; -id value +id|value +--+----- + 1|two +(1 row) -1 two step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b1 s1l s2l s1ul s1u s1c s1hint s2c step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1c: COMMIT; step s1hint: SELECT * FROM lcu_table; -id value +id|value +--+----- + 1|two +(1 row) -1 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b1 s1l s1u s1ul s2l s1c s1hint s2c step s1b: BEGIN; step s2b1: BEGIN ISOLATION LEVEL READ COMMITTED; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; -id value +id|value +--+----- + 1|one +(1 row) -1 one step s1c: COMMIT; step s1hint: SELECT * FROM lcu_table; -id value +id|value +--+----- + 1|two +(1 row) -1 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s2l s1u s1c s1ul s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1c: COMMIT; step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s1u s2l s1c s1ul s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s2l s1ul s1u s1c s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1c: COMMIT; step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s1u s1ul s2l s1c s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; -id value +id|value +--+----- + 1|one +(1 row) -1 one step s1c: COMMIT; step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s2l s1u s1c s1hint s1ul s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1c: COMMIT; step s1hint: SELECT * FROM lcu_table; -id value +id|value +--+----- + 1|two +(1 row) -1 two step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s1u s2l s1c s1hint s1ul s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s1hint: SELECT * FROM lcu_table; -id value +id|value +--+----- + 1|two +(1 row) -1 two step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s2l s1ul s1u s1c s1hint s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1c: COMMIT; step s1hint: SELECT * FROM lcu_table; -id value +id|value +--+----- + 1|two +(1 row) -1 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b2 s1l s1u s1ul s2l s1c s1hint s2c step s1b: BEGIN; step s2b2: BEGIN ISOLATION LEVEL REPEATABLE READ; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; -id value +id|value +--+----- + 1|one +(1 row) -1 one step s1c: COMMIT; step s1hint: SELECT * FROM lcu_table; -id value +id|value +--+----- + 1|two +(1 row) -1 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s2l s1u s1c s1ul s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1c: COMMIT; step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s1u s2l s1c s1ul s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s2l s1ul s1u s1c s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1c: COMMIT; step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s1u s1ul s2l s1c s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; -id value +id|value +--+----- + 1|one +(1 row) -1 one step s1c: COMMIT; step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s2l s1u s1c s1hint s1ul s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1c: COMMIT; step s1hint: SELECT * FROM lcu_table; -id value +id|value +--+----- + 1|two +(1 row) -1 two step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s1u s2l s1c s1hint s1ul s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1c: COMMIT; step s1hint: SELECT * FROM lcu_table; -id value +id|value +--+----- + 1|two +(1 row) -1 two step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s2l s1ul s1u s1c s1hint s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; <waiting ...> step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: <... completed> -id value +id|value +--+----- + 1|one +(1 row) -1 one step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1c: COMMIT; step s1hint: SELECT * FROM lcu_table; -id value +id|value +--+----- + 1|two +(1 row) -1 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - starting permutation: s1b s2b3 s1l s1u s1ul s2l s1c s1hint s2c step s1b: BEGIN; step s2b3: BEGIN ISOLATION LEVEL SERIALIZABLE; step s1l: SELECT pg_advisory_lock(380170116); pg_advisory_lock +---------------- + +(1 row) - step s1u: UPDATE lcu_table SET value = 'two' WHERE id = 1; step s1ul: SELECT pg_advisory_unlock(380170116); pg_advisory_unlock +------------------ +t +(1 row) -t step s2l: SELECT * FROM lcu_table WHERE pg_advisory_lock(380170116) IS NOT NULL FOR KEY SHARE; -id value +id|value +--+----- + 1|one +(1 row) -1 one step s1c: COMMIT; step s1hint: SELECT * FROM lcu_table; -id value +id|value +--+----- + 1|two +(1 row) -1 two step s2c: COMMIT; pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - diff --git a/src/test/isolation/expected/lock-update-delete.out b/src/test/isolation/expected/lock-update-delete.out index 3aa12539e2..f75e25f74b 100644 --- a/src/test/isolation/expected/lock-update-delete.out +++ b/src/test/isolation/expected/lock-update-delete.out @@ -2,114 +2,152 @@ Parsed test spec with 2 sessions starting permutation: s2b s1l s2u s2_blocker1 s2_unlock s2c pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2_blocker1: DELETE FROM foo; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s2c: COMMIT; step s1l: <... completed> -key value +key|value +---+----- +(0 rows) starting permutation: s2b s1l s2u s2_blocker2 s2_unlock s2c pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s2c: COMMIT; step s1l: <... completed> -key value +key|value +---+----- +(0 rows) starting permutation: s2b s1l s2u s2_blocker3 s2_unlock s2c pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; starting permutation: s2b s1l s2u s2_blocker1 s2_unlock s2r pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2_blocker1: DELETE FROM foo; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s2r: ROLLBACK; step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 starting permutation: s2b s1l s2u s2_blocker2 s2_unlock s2r pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s2r: ROLLBACK; step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 starting permutation: s2b s1l s2u s2_blocker3 s2_unlock s2r pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2r: ROLLBACK; starting permutation: s2b s1l s2u s2_blocker1 s2c s2_unlock pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; @@ -117,16 +155,22 @@ step s2_blocker1: DELETE FROM foo; step s2c: COMMIT; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- +(0 rows) starting permutation: s2b s1l s2u s2_blocker2 s2c s2_unlock pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; @@ -134,16 +178,22 @@ step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; step s2c: COMMIT; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- +(0 rows) starting permutation: s2b s1l s2u s2_blocker3 s2c s2_unlock pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; @@ -151,17 +201,23 @@ step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; step s2c: COMMIT; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 starting permutation: s2b s1l s2u s2_blocker1 s2r s2_unlock pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; @@ -169,17 +225,23 @@ step s2_blocker1: DELETE FROM foo; step s2r: ROLLBACK; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 starting permutation: s2b s1l s2u s2_blocker2 s2r s2_unlock pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; @@ -187,17 +249,23 @@ step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; step s2r: ROLLBACK; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 starting permutation: s2b s1l s2u s2_blocker3 s2r s2_unlock pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; @@ -205,9 +273,13 @@ step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; step s2r: ROLLBACK; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 diff --git a/src/test/isolation/expected/lock-update-delete_1.out b/src/test/isolation/expected/lock-update-delete_1.out index 77adde718d..c602ac8ac4 100644 --- a/src/test/isolation/expected/lock-update-delete_1.out +++ b/src/test/isolation/expected/lock-update-delete_1.out @@ -2,112 +2,146 @@ Parsed test spec with 2 sessions starting permutation: s2b s1l s2u s2_blocker1 s2_unlock s2c pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2_blocker1: DELETE FROM foo; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s2c: COMMIT; step s1l: <... completed> ERROR: could not serialize access due to concurrent update starting permutation: s2b s1l s2u s2_blocker2 s2_unlock s2c pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s2c: COMMIT; step s1l: <... completed> ERROR: could not serialize access due to concurrent update starting permutation: s2b s1l s2u s2_blocker3 s2_unlock s2c pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; starting permutation: s2b s1l s2u s2_blocker1 s2_unlock s2r pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2_blocker1: DELETE FROM foo; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s2r: ROLLBACK; step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 starting permutation: s2b s1l s2u s2_blocker2 s2_unlock s2r pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s2r: ROLLBACK; step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 starting permutation: s2b s1l s2u s2_blocker3 s2_unlock s2r pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2r: ROLLBACK; starting permutation: s2b s1l s2u s2_blocker1 s2c s2_unlock pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; @@ -115,15 +149,19 @@ step s2_blocker1: DELETE FROM foo; step s2c: COMMIT; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> ERROR: could not serialize access due to concurrent update starting permutation: s2b s1l s2u s2_blocker2 s2c s2_unlock pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; @@ -131,15 +169,19 @@ step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; step s2c: COMMIT; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> ERROR: could not serialize access due to concurrent update starting permutation: s2b s1l s2u s2_blocker3 s2c s2_unlock pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; @@ -147,17 +189,23 @@ step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; step s2c: COMMIT; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 starting permutation: s2b s1l s2u s2_blocker1 s2r s2_unlock pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; @@ -165,17 +213,23 @@ step s2_blocker1: DELETE FROM foo; step s2r: ROLLBACK; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 starting permutation: s2b s1l s2u s2_blocker2 s2r s2_unlock pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; @@ -183,17 +237,23 @@ step s2_blocker2: UPDATE foo SET key = 2 WHERE key = 1; step s2r: ROLLBACK; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 starting permutation: s2b s1l s2u s2_blocker3 s2r s2_unlock pg_advisory_lock +---------------- + +(1 row) - step s2b: BEGIN; step s1l: SELECT * FROM foo WHERE pg_advisory_xact_lock(0) IS NOT NULL AND key = 1 FOR KEY SHARE; <waiting ...> step s2u: UPDATE foo SET value = 2 WHERE key = 1; @@ -201,9 +261,13 @@ step s2_blocker3: UPDATE foo SET value = 2 WHERE key = 1; step s2r: ROLLBACK; step s2_unlock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1l: <... completed> -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 diff --git a/src/test/isolation/expected/lock-update-traversal.out b/src/test/isolation/expected/lock-update-traversal.out index e4e6405757..6d6a97d46e 100644 --- a/src/test/isolation/expected/lock-update-traversal.out +++ b/src/test/isolation/expected/lock-update-traversal.out @@ -4,14 +4,18 @@ starting permutation: s1b s2b s1s s2u s1l s2c s2d1 s1c step s1b: BEGIN ISOLATION LEVEL REPEATABLE READ; step s2b: BEGIN; step s1s: SELECT * FROM foo; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; step s2d1: DELETE FROM foo WHERE key = 1; <waiting ...> step s1c: COMMIT; @@ -21,14 +25,18 @@ starting permutation: s1b s2b s1s s2u s1l s2c s2d2 s1c step s1b: BEGIN ISOLATION LEVEL REPEATABLE READ; step s2b: BEGIN; step s1s: SELECT * FROM foo; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; step s2d2: UPDATE foo SET key = 3 WHERE key = 1; <waiting ...> step s1c: COMMIT; @@ -38,14 +46,18 @@ starting permutation: s1b s2b s1s s2u s1l s2c s2d3 s1c step s1b: BEGIN ISOLATION LEVEL REPEATABLE READ; step s2b: BEGIN; step s1s: SELECT * FROM foo; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2u: UPDATE foo SET value = 2 WHERE key = 1; step s1l: SELECT * FROM foo FOR KEY SHARE; -key value +key|value +---+----- + 1| 1 +(1 row) -1 1 step s2c: COMMIT; step s2d3: UPDATE foo SET value = 3 WHERE key = 1; step s1c: COMMIT; diff --git a/src/test/isolation/expected/multiple-cic.out b/src/test/isolation/expected/multiple-cic.out index e41e04a480..7a0f326cdb 100644 --- a/src/test/isolation/expected/multiple-cic.out +++ b/src/test/isolation/expected/multiple-cic.out @@ -3,8 +3,10 @@ Parsed test spec with 2 sessions starting permutation: s2l s1i s2i step s2l: SELECT pg_advisory_lock(281457); pg_advisory_lock +---------------- + +(1 row) - step s1i: CREATE INDEX CONCURRENTLY mcic_one_pkey ON mcic_one (id) WHERE lck_shr(281457); @@ -15,6 +17,8 @@ step s2i: <waiting ...> step s1i: <... completed> step s2i: <... completed> -unlck +unlck +----- +t +(1 row) -t diff --git a/src/test/isolation/expected/multiple-row-versions.out b/src/test/isolation/expected/multiple-row-versions.out index d6a0c427fc..79f492ea42 100644 --- a/src/test/isolation/expected/multiple-row-versions.out +++ b/src/test/isolation/expected/multiple-row-versions.out @@ -2,21 +2,27 @@ Parsed test spec with 4 sessions starting permutation: rx1 wx2 c2 wx3 ry3 wy4 rz4 c4 c3 wz1 c1 step rx1: SELECT * FROM t WHERE id = 1000000; -id txt + id|txt +-------+--- +1000000| +(1 row) -1000000 step wx2: UPDATE t SET txt = 'b' WHERE id = 1000000; step c2: COMMIT; step wx3: UPDATE t SET txt = 'c' WHERE id = 1000000; step ry3: SELECT * FROM t WHERE id = 500000; -id txt + id|txt +------+--- +500000| +(1 row) -500000 step wy4: UPDATE t SET txt = 'd' WHERE id = 500000; step rz4: SELECT * FROM t WHERE id = 1; -id txt +id|txt +--+--- + 1| +(1 row) -1 step c4: COMMIT; step c3: COMMIT; step wz1: UPDATE t SET txt = 'a' WHERE id = 1; diff --git a/src/test/isolation/expected/multixact-no-deadlock.out b/src/test/isolation/expected/multixact-no-deadlock.out index 5ba2e7818e..4b9ce7bfc3 100644 --- a/src/test/isolation/expected/multixact-no-deadlock.out +++ b/src/test/isolation/expected/multixact-no-deadlock.out @@ -2,23 +2,31 @@ Parsed test spec with 3 sessions starting permutation: s1lock s2lock s1svpt s3lock s1lock2 s2c s1c s3c step s1lock: SELECT * FROM justthis FOR SHARE; -value +value +----- + 1 +(1 row) -1 step s2lock: SELECT * FROM justthis FOR SHARE; -value +value +----- + 1 +(1 row) -1 step s1svpt: SAVEPOINT foo; step s3lock: SELECT * FROM justthis FOR UPDATE; <waiting ...> step s1lock2: SELECT * FROM justthis FOR SHARE; -value +value +----- + 1 +(1 row) -1 step s2c: COMMIT; step s1c: COMMIT; step s3lock: <... completed> -value +value +----- + 1 +(1 row) -1 step s3c: COMMIT; diff --git a/src/test/isolation/expected/multixact-no-forget.out b/src/test/isolation/expected/multixact-no-forget.out index 38466bf837..ce06b38407 100644 --- a/src/test/isolation/expected/multixact-no-forget.out +++ b/src/test/isolation/expected/multixact-no-forget.out @@ -2,129 +2,167 @@ Parsed test spec with 3 sessions starting permutation: s1_show s1_commit s2_commit step s1_show: SELECT current_setting('default_transaction_isolation') <> 'read committed'; -?column? +?column? +-------- +f +(1 row) -f step s1_commit: COMMIT; step s2_commit: COMMIT; starting permutation: s1_lock s2_update s2_abort s3_forkeyshr s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s2_abort: ROLLBACK; step s3_forkeyshr: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s1_commit: COMMIT; starting permutation: s1_lock s2_update s2_commit s3_forkeyshr s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s2_commit: COMMIT; step s3_forkeyshr: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 2 +(1 row) -2 step s1_commit: COMMIT; starting permutation: s1_lock s2_update s1_commit s3_forkeyshr s2_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s1_commit: COMMIT; step s3_forkeyshr: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_commit: COMMIT; starting permutation: s1_lock s2_update s2_abort s3_fornokeyupd s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s2_abort: ROLLBACK; step s3_fornokeyupd: SELECT * FROM dont_forget FOR NO KEY UPDATE; -value +value +----- + 1 +(1 row) -1 step s1_commit: COMMIT; starting permutation: s1_lock s2_update s2_commit s3_fornokeyupd s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s2_commit: COMMIT; step s3_fornokeyupd: SELECT * FROM dont_forget FOR NO KEY UPDATE; -value +value +----- + 2 +(1 row) -2 step s1_commit: COMMIT; starting permutation: s1_lock s2_update s1_commit s3_fornokeyupd s2_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s1_commit: COMMIT; step s3_fornokeyupd: SELECT * FROM dont_forget FOR NO KEY UPDATE; <waiting ...> step s2_commit: COMMIT; step s3_fornokeyupd: <... completed> -value +value +----- + 2 +(1 row) -2 starting permutation: s1_lock s2_update s2_abort s3_forupd s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s2_abort: ROLLBACK; step s3_forupd: SELECT * FROM dont_forget FOR UPDATE; <waiting ...> step s1_commit: COMMIT; step s3_forupd: <... completed> -value +value +----- + 1 +(1 row) -1 starting permutation: s1_lock s2_update s2_commit s3_forupd s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s2_commit: COMMIT; step s3_forupd: SELECT * FROM dont_forget FOR UPDATE; <waiting ...> step s1_commit: COMMIT; step s3_forupd: <... completed> -value +value +----- + 2 +(1 row) -2 starting permutation: s1_lock s2_update s1_commit s3_forupd s2_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s1_commit: COMMIT; step s3_forupd: SELECT * FROM dont_forget FOR UPDATE; <waiting ...> step s2_commit: COMMIT; step s3_forupd: <... completed> -value +value +----- + 2 +(1 row) -2 diff --git a/src/test/isolation/expected/multixact-no-forget_1.out b/src/test/isolation/expected/multixact-no-forget_1.out index 205a40099c..f15a1e1809 100644 --- a/src/test/isolation/expected/multixact-no-forget_1.out +++ b/src/test/isolation/expected/multixact-no-forget_1.out @@ -2,82 +2,106 @@ Parsed test spec with 3 sessions starting permutation: s1_show s1_commit s2_commit step s1_show: SELECT current_setting('default_transaction_isolation') <> 'read committed'; -?column? +?column? +-------- +t +(1 row) -t step s1_commit: COMMIT; step s2_commit: COMMIT; starting permutation: s1_lock s2_update s2_abort s3_forkeyshr s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s2_abort: ROLLBACK; step s3_forkeyshr: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s1_commit: COMMIT; starting permutation: s1_lock s2_update s2_commit s3_forkeyshr s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s2_commit: COMMIT; step s3_forkeyshr: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 2 +(1 row) -2 step s1_commit: COMMIT; starting permutation: s1_lock s2_update s1_commit s3_forkeyshr s2_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s1_commit: COMMIT; step s3_forkeyshr: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_commit: COMMIT; starting permutation: s1_lock s2_update s2_abort s3_fornokeyupd s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s2_abort: ROLLBACK; step s3_fornokeyupd: SELECT * FROM dont_forget FOR NO KEY UPDATE; -value +value +----- + 1 +(1 row) -1 step s1_commit: COMMIT; starting permutation: s1_lock s2_update s2_commit s3_fornokeyupd s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s2_commit: COMMIT; step s3_fornokeyupd: SELECT * FROM dont_forget FOR NO KEY UPDATE; -value +value +----- + 2 +(1 row) -2 step s1_commit: COMMIT; starting permutation: s1_lock s2_update s1_commit s3_fornokeyupd s2_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s1_commit: COMMIT; step s3_fornokeyupd: SELECT * FROM dont_forget FOR NO KEY UPDATE; <waiting ...> @@ -87,37 +111,47 @@ ERROR: could not serialize access due to concurrent update starting permutation: s1_lock s2_update s2_abort s3_forupd s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s2_abort: ROLLBACK; step s3_forupd: SELECT * FROM dont_forget FOR UPDATE; <waiting ...> step s1_commit: COMMIT; step s3_forupd: <... completed> -value +value +----- + 1 +(1 row) -1 starting permutation: s1_lock s2_update s2_commit s3_forupd s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s2_commit: COMMIT; step s3_forupd: SELECT * FROM dont_forget FOR UPDATE; <waiting ...> step s1_commit: COMMIT; step s3_forupd: <... completed> -value +value +----- + 2 +(1 row) -2 starting permutation: s1_lock s2_update s1_commit s3_forupd s2_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; -value +value +----- + 1 +(1 row) -1 step s2_update: UPDATE dont_forget SET value = 2; step s1_commit: COMMIT; step s3_forupd: SELECT * FROM dont_forget FOR UPDATE; <waiting ...> diff --git a/src/test/isolation/expected/nowait-2.out b/src/test/isolation/expected/nowait-2.out index 6e24bbbf26..ba18fa77d4 100644 --- a/src/test/isolation/expected/nowait-2.out +++ b/src/test/isolation/expected/nowait-2.out @@ -2,13 +2,17 @@ Parsed test spec with 2 sessions starting permutation: s1a s2a s2b s1b s2c step s1a: SELECT * FROM foo FOR SHARE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s2a: SELECT * FROM foo FOR SHARE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s2b: SELECT * FROM foo FOR UPDATE NOWAIT; ERROR: could not obtain lock on row in relation "foo" step s1b: COMMIT; @@ -16,13 +20,17 @@ step s2c: COMMIT; starting permutation: s2a s1a s2b s1b s2c step s2a: SELECT * FROM foo FOR SHARE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s1a: SELECT * FROM foo FOR SHARE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s2b: SELECT * FROM foo FOR UPDATE NOWAIT; ERROR: could not obtain lock on row in relation "foo" step s1b: COMMIT; @@ -30,13 +38,17 @@ step s2c: COMMIT; starting permutation: s2a s2b s1a s1b s2c step s2a: SELECT * FROM foo FOR SHARE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s2b: SELECT * FROM foo FOR UPDATE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s1a: SELECT * FROM foo FOR SHARE NOWAIT; ERROR: could not obtain lock on row in relation "foo" step s1b: COMMIT; diff --git a/src/test/isolation/expected/nowait-3.out b/src/test/isolation/expected/nowait-3.out index 844464654a..19a5b680bc 100644 --- a/src/test/isolation/expected/nowait-3.out +++ b/src/test/isolation/expected/nowait-3.out @@ -2,16 +2,20 @@ Parsed test spec with 3 sessions starting permutation: s1a s2a s3a s1b s2b s3b step s1a: SELECT * FROM foo FOR UPDATE; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s2a: SELECT * FROM foo FOR UPDATE; <waiting ...> step s3a: SELECT * FROM foo FOR UPDATE NOWAIT; ERROR: could not obtain lock on row in relation "foo" step s1b: COMMIT; step s2a: <... completed> -id data +id|data +--+---- + 1|x +(1 row) -1 x step s2b: COMMIT; step s3b: COMMIT; diff --git a/src/test/isolation/expected/nowait-4.out b/src/test/isolation/expected/nowait-4.out index c1db66581b..be0edbdd21 100644 --- a/src/test/isolation/expected/nowait-4.out +++ b/src/test/isolation/expected/nowait-4.out @@ -3,16 +3,20 @@ Parsed test spec with 2 sessions starting permutation: s2a s1a s2b s2c s2d s2e s1b s2f step s2a: SELECT pg_advisory_lock(0); pg_advisory_lock +---------------- + +(1 row) - step s1a: SELECT * FROM foo WHERE pg_advisory_lock(0) IS NOT NULL FOR UPDATE NOWAIT; <waiting ...> step s2b: UPDATE foo SET data = data; step s2c: BEGIN; step s2d: UPDATE foo SET data = data; step s2e: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1a: <... completed> ERROR: could not obtain lock on row in relation "foo" step s1b: COMMIT; diff --git a/src/test/isolation/expected/nowait-4_1.out b/src/test/isolation/expected/nowait-4_1.out index 5fa6b3453a..05e2fcf2f6 100644 --- a/src/test/isolation/expected/nowait-4_1.out +++ b/src/test/isolation/expected/nowait-4_1.out @@ -3,16 +3,20 @@ Parsed test spec with 2 sessions starting permutation: s2a s1a s2b s2c s2d s2e s1b s2f step s2a: SELECT pg_advisory_lock(0); pg_advisory_lock +---------------- + +(1 row) - step s1a: SELECT * FROM foo WHERE pg_advisory_lock(0) IS NOT NULL FOR UPDATE NOWAIT; <waiting ...> step s2b: UPDATE foo SET data = data; step s2c: BEGIN; step s2d: UPDATE foo SET data = data; step s2e: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step s1a: <... completed> ERROR: could not serialize access due to concurrent update step s1b: COMMIT; diff --git a/src/test/isolation/expected/nowait-5.out b/src/test/isolation/expected/nowait-5.out index 2682ea1ab3..f1aae21c1f 100644 --- a/src/test/isolation/expected/nowait-5.out +++ b/src/test/isolation/expected/nowait-5.out @@ -8,8 +8,10 @@ step upd_getlock: SELECT pg_advisory_lock(0); pg_advisory_lock +---------------- + +(1 row) - step sl1_exec: BEGIN ISOLATION LEVEL READ COMMITTED; EXECUTE sl1_run; @@ -24,14 +26,18 @@ step lk1_doforshare: BEGIN ISOLATION LEVEL READ COMMITTED; SELECT id FROM test_nowait WHERE id % 2 = 0 FOR SHARE; -id +id +-- + 2 +(1 row) -2 step upd_releaselock: SELECT pg_advisory_unlock(0); pg_advisory_unlock +------------------ +t +(1 row) -t step sl1_exec: <... completed> ERROR: could not obtain lock on row in relation "test_nowait" diff --git a/src/test/isolation/expected/nowait.out b/src/test/isolation/expected/nowait.out index a6343b4afa..ea1cdf012a 100644 --- a/src/test/isolation/expected/nowait.out +++ b/src/test/isolation/expected/nowait.out @@ -2,21 +2,27 @@ Parsed test spec with 2 sessions starting permutation: s1a s1b s2a s2b step s1a: SELECT * FROM foo FOR UPDATE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s1b: COMMIT; step s2a: SELECT * FROM foo FOR UPDATE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s2b: COMMIT; starting permutation: s1a s2a s1b s2b step s1a: SELECT * FROM foo FOR UPDATE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s2a: SELECT * FROM foo FOR UPDATE NOWAIT; ERROR: could not obtain lock on row in relation "foo" step s1b: COMMIT; @@ -24,9 +30,11 @@ step s2b: COMMIT; starting permutation: s1a s2a s2b s1b step s1a: SELECT * FROM foo FOR UPDATE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s2a: SELECT * FROM foo FOR UPDATE NOWAIT; ERROR: could not obtain lock on row in relation "foo" step s2b: COMMIT; @@ -34,9 +42,11 @@ step s1b: COMMIT; starting permutation: s2a s1a s1b s2b step s2a: SELECT * FROM foo FOR UPDATE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s1a: SELECT * FROM foo FOR UPDATE NOWAIT; ERROR: could not obtain lock on row in relation "foo" step s1b: COMMIT; @@ -44,9 +54,11 @@ step s2b: COMMIT; starting permutation: s2a s1a s2b s1b step s2a: SELECT * FROM foo FOR UPDATE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s1a: SELECT * FROM foo FOR UPDATE NOWAIT; ERROR: could not obtain lock on row in relation "foo" step s2b: COMMIT; @@ -54,12 +66,16 @@ step s1b: COMMIT; starting permutation: s2a s2b s1a s1b step s2a: SELECT * FROM foo FOR UPDATE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s2b: COMMIT; step s1a: SELECT * FROM foo FOR UPDATE NOWAIT; -id data +id|data +--+---- + 1|x +(1 row) -1 x step s1b: COMMIT; diff --git a/src/test/isolation/expected/partial-index.out b/src/test/isolation/expected/partial-index.out index d1f00c9b3c..d6cae902a9 100644 --- a/src/test/isolation/expected/partial-index.out +++ b/src/test/isolation/expected/partial-index.out @@ -2,51 +2,57 @@ Parsed test spec with 2 sessions starting permutation: rxy1 wx1 c1 wy2 rxy2 c2 step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c1: COMMIT; step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +(9 rows) + step c2: COMMIT; starting permutation: rxy1 wx1 wy2 c1 rxy2 c2 step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step c1: COMMIT; @@ -56,87 +62,97 @@ step c2: COMMIT; starting permutation: rxy1 wx1 wy2 rxy2 c1 c2 step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step c1: COMMIT; step c2: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions starting permutation: rxy1 wx1 wy2 rxy2 c2 c1 step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step c2: COMMIT; step c1: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions starting permutation: rxy1 wy2 wx1 c1 rxy2 c2 step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c1: COMMIT; @@ -146,101 +162,113 @@ step c2: COMMIT; starting permutation: rxy1 wy2 wx1 rxy2 c1 c2 step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step c1: COMMIT; step c2: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions starting permutation: rxy1 wy2 wx1 rxy2 c2 c1 step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step c2: COMMIT; step c1: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions starting permutation: rxy1 wy2 rxy2 wx1 c1 c2 step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c1: COMMIT; step c2: COMMIT; @@ -248,33 +276,37 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 wy2 rxy2 wx1 c2 c1 step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c2: COMMIT; step c1: COMMIT; @@ -282,33 +314,37 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 wy2 rxy2 c2 wx1 c1 step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step c2: COMMIT; step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; ERROR: could not serialize access due to read/write dependencies among transactions @@ -317,19 +353,21 @@ step c1: COMMIT; starting permutation: wy2 rxy1 wx1 c1 rxy2 c2 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c1: COMMIT; step rxy2: select * from test_t where val2 = 1; @@ -339,33 +377,37 @@ step c2: COMMIT; starting permutation: wy2 rxy1 wx1 rxy2 c1 c2 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step c1: COMMIT; step c2: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions @@ -373,33 +415,37 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: wy2 rxy1 wx1 rxy2 c2 c1 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step c2: COMMIT; step c1: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions @@ -407,32 +453,36 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: wy2 rxy1 rxy2 wx1 c1 c2 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c1: COMMIT; step c2: COMMIT; @@ -441,32 +491,36 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: wy2 rxy1 rxy2 wx1 c2 c1 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c2: COMMIT; step c1: COMMIT; @@ -475,32 +529,36 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: wy2 rxy1 rxy2 c2 wx1 c1 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step c2: COMMIT; step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; ERROR: could not serialize access due to read/write dependencies among transactions @@ -509,32 +567,36 @@ step c1: COMMIT; starting permutation: wy2 rxy2 rxy1 wx1 c1 c2 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c1: COMMIT; step c2: COMMIT; @@ -543,32 +605,36 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: wy2 rxy2 rxy1 wx1 c2 c1 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c2: COMMIT; step c1: COMMIT; @@ -577,32 +643,36 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: wy2 rxy2 rxy1 c2 wx1 c1 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -9 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 + 9|a | 1 +10|a | 1 +(11 rows) + step c2: COMMIT; step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; ERROR: could not serialize access due to read/write dependencies among transactions @@ -611,31 +681,35 @@ step c1: COMMIT; starting permutation: wy2 rxy2 c2 rxy1 wx1 c1 step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9; step rxy2: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step c2: COMMIT; step rxy1: select * from test_t where val2 = 1; -id val1 val2 - -0 a 1 -1 a 1 -2 a 1 -3 a 1 -4 a 1 -5 a 1 -6 a 1 -7 a 1 -8 a 1 -10 a 1 +id|val1|val2 +--+----+---- + 0|a | 1 + 1|a | 1 + 2|a | 1 + 3|a | 1 + 4|a | 1 + 5|a | 1 + 6|a | 1 + 7|a | 1 + 8|a | 1 +10|a | 1 +(10 rows) + step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c1: COMMIT; diff --git a/src/test/isolation/expected/partition-concurrent-attach.out b/src/test/isolation/expected/partition-concurrent-attach.out index 4986ee25e8..53775f431f 100644 --- a/src/test/isolation/expected/partition-concurrent-attach.out +++ b/src/test/isolation/expected/partition-concurrent-attach.out @@ -10,11 +10,13 @@ step s2i: <... completed> ERROR: new row for relation "tpart_default" violates partition constraint step s2c: commit; step s2s: select tableoid::regclass, * from tpart; -tableoid i j +tableoid| i|j +--------+---+--- +tpart_2 |110|xxx +tpart_2 |120|yyy +tpart_2 |150|zzz +(3 rows) -tpart_2 110 xxx -tpart_2 120 yyy -tpart_2 150 zzz starting permutation: s1b s1a s2b s2i2 s1c s2c s2s step s1b: begin; @@ -26,11 +28,13 @@ step s2i2: <... completed> ERROR: new row for relation "tpart_default" violates partition constraint step s2c: commit; step s2s: select tableoid::regclass, * from tpart; -tableoid i j +tableoid| i|j +--------+---+--- +tpart_2 |110|xxx +tpart_2 |120|yyy +tpart_2 |150|zzz +(3 rows) -tpart_2 110 xxx -tpart_2 120 yyy -tpart_2 150 zzz starting permutation: s1b s2b s2i s1a s2c s1c s2s step s1b: begin; @@ -42,8 +46,10 @@ step s1a: <... completed> ERROR: updated partition constraint for default partition "tpart_default_default" would be violated by some row step s1c: commit; step s2s: select tableoid::regclass, * from tpart; -tableoid i j +tableoid | i|j +---------------------+---+--- +tpart_default_default|110|xxx +tpart_default_default|120|yyy +tpart_default_default|150|zzz +(3 rows) -tpart_default_default110 xxx -tpart_default_default120 yyy -tpart_default_default150 zzz diff --git a/src/test/isolation/expected/partition-key-update-2.out b/src/test/isolation/expected/partition-key-update-2.out index 363de0d69c..f054de5ed9 100644 --- a/src/test/isolation/expected/partition-key-update-2.out +++ b/src/test/isolation/expected/partition-key-update-2.out @@ -9,10 +9,12 @@ step s2donothing: <... completed> step s3donothing: <... completed> step s2c: COMMIT; step s3select: SELECT * FROM foo ORDER BY a; -a b +a|b +-+----------------------------------- +1|session-2 donothing +2|initial tuple -> moved by session-1 +(2 rows) -1 session-2 donothing -2 initial tuple -> moved by session-1 step s3c: COMMIT; starting permutation: s2donothing s1u s3donothing s1c s2c s3select s3c @@ -23,7 +25,9 @@ step s1c: COMMIT; step s3donothing: <... completed> step s2c: COMMIT; step s3select: SELECT * FROM foo ORDER BY a; -a b +a|b +-+----------------------------------- +2|initial tuple -> moved by session-1 +(1 row) -2 initial tuple -> moved by session-1 step s3c: COMMIT; diff --git a/src/test/isolation/expected/partition-key-update-3.out b/src/test/isolation/expected/partition-key-update-3.out index a06af2d719..b5872b8b45 100644 --- a/src/test/isolation/expected/partition-key-update-3.out +++ b/src/test/isolation/expected/partition-key-update-3.out @@ -11,10 +11,12 @@ step s2c: COMMIT; step s3donothing: INSERT INTO foo VALUES(2, 'session-3 donothing'), (2, 'session-3 donothing2') ON CONFLICT DO NOTHING; step s3c: COMMIT; step s2select: SELECT * FROM foo ORDER BY a; -a b +a|b +-+----------------------------------- +1|session-2 donothing +2|initial tuple -> moved by session-1 +(2 rows) -1 session-2 donothing -2 initial tuple -> moved by session-1 starting permutation: s2beginrr s3beginrr s1u s3donothing s1c s3c s2donothing s2c s2select step s2beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ; @@ -28,10 +30,12 @@ step s3c: COMMIT; step s2donothing: INSERT INTO foo VALUES(1, 'session-2 donothing') ON CONFLICT DO NOTHING; step s2c: COMMIT; step s2select: SELECT * FROM foo ORDER BY a; -a b +a|b +-+----------------------------------- +1|session-2 donothing +2|initial tuple -> moved by session-1 +(2 rows) -1 session-2 donothing -2 initial tuple -> moved by session-1 starting permutation: s2beginrr s3beginrr s1u s2donothing s3donothing s1c s2c s3c s2select step s2beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ; @@ -46,10 +50,12 @@ ERROR: could not serialize access due to concurrent update step s2c: COMMIT; step s3c: COMMIT; step s2select: SELECT * FROM foo ORDER BY a; -a b +a|b +-+----------------------------------- +1|session-2 donothing +2|initial tuple -> moved by session-1 +(2 rows) -1 session-2 donothing -2 initial tuple -> moved by session-1 starting permutation: s2beginrr s3beginrr s1u s3donothing s2donothing s1c s3c s2c s2select step s2beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ; @@ -64,10 +70,12 @@ step s2donothing: <... completed> step s3c: COMMIT; step s2c: COMMIT; step s2select: SELECT * FROM foo ORDER BY a; -a b +a|b +-+----------------------------------- +1|session-2 donothing +2|initial tuple -> moved by session-1 +(2 rows) -1 session-2 donothing -2 initial tuple -> moved by session-1 starting permutation: s2begins s3begins s1u s2donothing s1c s2c s3donothing s3c s2select step s2begins: BEGIN ISOLATION LEVEL SERIALIZABLE; @@ -80,10 +88,12 @@ step s2c: COMMIT; step s3donothing: INSERT INTO foo VALUES(2, 'session-3 donothing'), (2, 'session-3 donothing2') ON CONFLICT DO NOTHING; step s3c: COMMIT; step s2select: SELECT * FROM foo ORDER BY a; -a b +a|b +-+----------------------------------- +1|session-2 donothing +2|initial tuple -> moved by session-1 +(2 rows) -1 session-2 donothing -2 initial tuple -> moved by session-1 starting permutation: s2begins s3begins s1u s3donothing s1c s3c s2donothing s2c s2select step s2begins: BEGIN ISOLATION LEVEL SERIALIZABLE; @@ -97,10 +107,12 @@ step s3c: COMMIT; step s2donothing: INSERT INTO foo VALUES(1, 'session-2 donothing') ON CONFLICT DO NOTHING; step s2c: COMMIT; step s2select: SELECT * FROM foo ORDER BY a; -a b +a|b +-+----------------------------------- +1|session-2 donothing +2|initial tuple -> moved by session-1 +(2 rows) -1 session-2 donothing -2 initial tuple -> moved by session-1 starting permutation: s2begins s3begins s1u s2donothing s3donothing s1c s2c s3c s2select step s2begins: BEGIN ISOLATION LEVEL SERIALIZABLE; @@ -115,10 +127,12 @@ ERROR: could not serialize access due to concurrent update step s2c: COMMIT; step s3c: COMMIT; step s2select: SELECT * FROM foo ORDER BY a; -a b +a|b +-+----------------------------------- +1|session-2 donothing +2|initial tuple -> moved by session-1 +(2 rows) -1 session-2 donothing -2 initial tuple -> moved by session-1 starting permutation: s2begins s3begins s1u s3donothing s2donothing s1c s3c s2c s2select step s2begins: BEGIN ISOLATION LEVEL SERIALIZABLE; @@ -133,7 +147,9 @@ step s2donothing: <... completed> step s3c: COMMIT; step s2c: COMMIT; step s2select: SELECT * FROM foo ORDER BY a; -a b +a|b +-+----------------------------------- +1|session-2 donothing +2|initial tuple -> moved by session-1 +(2 rows) -1 session-2 donothing -2 initial tuple -> moved by session-1 diff --git a/src/test/isolation/expected/partition-key-update-4.out b/src/test/isolation/expected/partition-key-update-4.out index 774a7faf6c..91fa0417fd 100644 --- a/src/test/isolation/expected/partition-key-update-4.out +++ b/src/test/isolation/expected/partition-key-update-4.out @@ -9,9 +9,11 @@ step s2c: COMMIT; step s1u: <... completed> step s1c: COMMIT; step s1s: SELECT tableoid::regclass, * FROM foo ORDER BY a; -tableoid a b +tableoid|a|b +--------+-+------------------- +foo2 |2|ABC update2 update1 +(1 row) -foo2 2 ABC update2 update1 starting permutation: s1b s2b s2ut1 s1ut s2c s1c s1st s1stl step s1b: BEGIN ISOLATION LEVEL READ COMMITTED; @@ -22,13 +24,17 @@ step s2c: COMMIT; step s1ut: <... completed> step s1c: COMMIT; step s1st: SELECT tableoid::regclass, * FROM footrg ORDER BY a; -tableoid a b +tableoid|a|b +--------+-+------------------- +footrg2 |2|ABC update2 update1 +(1 row) -footrg2 2 ABC update2 update1 step s1stl: SELECT * FROM triglog ORDER BY a; -a b +a|b +-+------------------- +1|ABC update2 trigger +(1 row) -1 ABC update2 trigger starting permutation: s1b s2b s2u2 s1u s2c s1c s1s step s1b: BEGIN ISOLATION LEVEL READ COMMITTED; @@ -39,9 +45,11 @@ step s2c: COMMIT; step s1u: <... completed> step s1c: COMMIT; step s1s: SELECT tableoid::regclass, * FROM foo ORDER BY a; -tableoid a b +tableoid|a|b +--------+-+--- +foo1 |1|EFG +(1 row) -foo1 1 EFG starting permutation: s1b s2b s2ut2 s1ut s2c s1c s1st s1stl step s1b: BEGIN ISOLATION LEVEL READ COMMITTED; @@ -52,9 +60,13 @@ step s2c: COMMIT; step s1ut: <... completed> step s1c: COMMIT; step s1st: SELECT tableoid::regclass, * FROM footrg ORDER BY a; -tableoid a b +tableoid|a|b +--------+-+--- +footrg1 |1|EFG +(1 row) -footrg1 1 EFG step s1stl: SELECT * FROM triglog ORDER BY a; -a b +a|b +-+- +(0 rows) diff --git a/src/test/isolation/expected/plpgsql-toast.out b/src/test/isolation/expected/plpgsql-toast.out index 213bddad4f..0fee7953ac 100644 --- a/src/test/isolation/expected/plpgsql-toast.out +++ b/src/test/isolation/expected/plpgsql-toast.out @@ -2,17 +2,23 @@ Parsed test spec with 2 sessions starting permutation: lock assign1 vacuum unlock pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - step lock: SELECT pg_advisory_lock(1); pg_advisory_lock +---------------- + +(1 row) - step assign1: do $$ declare @@ -33,24 +39,32 @@ step unlock: SELECT pg_advisory_unlock(1); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: length(x) = 6000 step assign1: <... completed> starting permutation: lock assign2 vacuum unlock pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - step lock: SELECT pg_advisory_lock(1); pg_advisory_lock +---------------- + +(1 row) - step assign2: do $$ declare @@ -71,24 +85,32 @@ step unlock: SELECT pg_advisory_unlock(1); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: length(x) = 6000 step assign2: <... completed> starting permutation: lock assign3 vacuum unlock pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - step lock: SELECT pg_advisory_lock(1); pg_advisory_lock +---------------- + +(1 row) - step assign3: do $$ declare @@ -110,24 +132,32 @@ step unlock: SELECT pg_advisory_unlock(1); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: length(r) = 6004 step assign3: <... completed> starting permutation: lock assign4 vacuum unlock pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - step lock: SELECT pg_advisory_lock(1); pg_advisory_lock +---------------- + +(1 row) - step assign4: do $$ declare @@ -148,24 +178,32 @@ step unlock: SELECT pg_advisory_unlock(1); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: length(r) = 6004 step assign4: <... completed> starting permutation: lock assign5 vacuum unlock pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - step lock: SELECT pg_advisory_lock(1); pg_advisory_lock +---------------- + +(1 row) - step assign5: do $$ declare @@ -188,24 +226,32 @@ step unlock: SELECT pg_advisory_unlock(1); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: length(r) = 6002 step assign5: <... completed> starting permutation: lock assign6 vacuum unlock pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - step lock: SELECT pg_advisory_lock(1); pg_advisory_lock +---------------- + +(1 row) - step assign6: do $$ declare @@ -229,8 +275,10 @@ step unlock: SELECT pg_advisory_unlock(1); pg_advisory_unlock +------------------ +t +(1 row) -t s1: NOTICE: length(r) = 6002 s1: NOTICE: length(r) = 9002 s1: NOTICE: length(r) = 12002 @@ -238,11 +286,15 @@ step assign6: <... completed> starting permutation: fetch-after-commit pg_advisory_unlock_all +---------------------- + +(1 row) - pg_advisory_unlock_all +---------------------- + +(1 row) - s1: NOTICE: length(t) = 6000 s1: NOTICE: length(t) = 9000 s1: NOTICE: length(t) = 12000 diff --git a/src/test/isolation/expected/predicate-gin.out b/src/test/isolation/expected/predicate-gin.out index 77eb5aaff7..c032804804 100644 --- a/src/test/isolation/expected/predicate-gin.out +++ b/src/test/isolation/expected/predicate-gin.out @@ -2,13 +2,17 @@ Parsed test spec with 3 sessions starting permutation: ra1 ro2 wo1 c1 wa2 c2 step ra1: select * from gin_tbl where p @> array[1] limit 1; -p +p +--- +{1} +(1 row) -{1} step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wo1: insert into other_tbl values (1); step c1: commit; step wa2: insert into gin_tbl values (array[1]); @@ -17,13 +21,17 @@ step c2: commit; starting permutation: ro2 ra1 wo1 c1 wa2 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step ra1: select * from gin_tbl where p @> array[1] limit 1; -p +p +--- +{1} +(1 row) -{1} step wo1: insert into other_tbl values (1); step c1: commit; step wa2: insert into gin_tbl values (array[1]); @@ -32,13 +40,17 @@ step c2: commit; starting permutation: ro2 ra1 wo1 wa2 c1 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step ra1: select * from gin_tbl where p @> array[1] limit 1; -p +p +--- +{1} +(1 row) -{1} step wo1: insert into other_tbl values (1); step wa2: insert into gin_tbl values (array[1]); step c1: commit; @@ -47,13 +59,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: ra1 ro2 wa2 wo1 c1 c2 step ra1: select * from gin_tbl where p @> array[1] limit 1; -p +p +--- +{1} +(1 row) -{1} step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wa2: insert into gin_tbl values (array[1]); step wo1: insert into other_tbl values (1); step c1: commit; @@ -62,13 +78,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rb1 ro2 wo1 c1 wb2 c2 step rb1: select count(*) from gin_tbl where p @> array[2]; -count +count +----- + 1 +(1 row) -1 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wo1: insert into other_tbl values (1); step c1: commit; step wb2: insert into gin_tbl values (array[2]); @@ -77,13 +97,17 @@ step c2: commit; starting permutation: ro2 rb1 wo1 c1 wb2 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step rb1: select count(*) from gin_tbl where p @> array[2]; -count +count +----- + 1 +(1 row) -1 step wo1: insert into other_tbl values (1); step c1: commit; step wb2: insert into gin_tbl values (array[2]); @@ -92,13 +116,17 @@ step c2: commit; starting permutation: ro2 rb1 wo1 wb2 c1 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step rb1: select count(*) from gin_tbl where p @> array[2]; -count +count +----- + 1 +(1 row) -1 step wo1: insert into other_tbl values (1); step wb2: insert into gin_tbl values (array[2]); step c1: commit; @@ -107,13 +135,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rb1 ro2 wb2 wo1 c1 c2 step rb1: select count(*) from gin_tbl where p @> array[2]; -count +count +----- + 1 +(1 row) -1 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wb2: insert into gin_tbl values (array[2]); step wo1: insert into other_tbl values (1); step c1: commit; @@ -122,13 +154,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rc1 ro2 wo1 c1 wc2 c2 step rc1: select count(*) from gin_tbl where p @> array[800]; -count +count +----- + 1 +(1 row) -1 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wo1: insert into other_tbl values (1); step c1: commit; step wc2: insert into gin_tbl values (array[800]); @@ -137,13 +173,17 @@ step c2: commit; starting permutation: ro2 rc1 wo1 c1 wc2 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step rc1: select count(*) from gin_tbl where p @> array[800]; -count +count +----- + 1 +(1 row) -1 step wo1: insert into other_tbl values (1); step c1: commit; step wc2: insert into gin_tbl values (array[800]); @@ -152,13 +192,17 @@ step c2: commit; starting permutation: ro2 rc1 wo1 wc2 c1 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step rc1: select count(*) from gin_tbl where p @> array[800]; -count +count +----- + 1 +(1 row) -1 step wo1: insert into other_tbl values (1); step wc2: insert into gin_tbl values (array[800]); step c1: commit; @@ -167,13 +211,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rc1 ro2 wc2 wo1 c1 c2 step rc1: select count(*) from gin_tbl where p @> array[800]; -count +count +----- + 1 +(1 row) -1 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wc2: insert into gin_tbl values (array[800]); step wo1: insert into other_tbl values (1); step c1: commit; @@ -182,13 +230,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: ra1 ro2 wo1 c1 wb2 c2 step ra1: select * from gin_tbl where p @> array[1] limit 1; -p +p +--- +{1} +(1 row) -{1} step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wo1: insert into other_tbl values (1); step c1: commit; step wb2: insert into gin_tbl values (array[2]); @@ -196,13 +248,17 @@ step c2: commit; starting permutation: ro2 ra1 wo1 c1 wc2 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step ra1: select * from gin_tbl where p @> array[1] limit 1; -p +p +--- +{1} +(1 row) -{1} step wo1: insert into other_tbl values (1); step c1: commit; step wc2: insert into gin_tbl values (array[800]); @@ -210,13 +266,17 @@ step c2: commit; starting permutation: ro2 rb1 wo1 wa2 c1 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step rb1: select count(*) from gin_tbl where p @> array[2]; -count +count +----- + 1 +(1 row) -1 step wo1: insert into other_tbl values (1); step wa2: insert into gin_tbl values (array[1]); step c1: commit; @@ -224,13 +284,17 @@ step c2: commit; starting permutation: rc1 ro2 wa2 wo1 c1 c2 step rc1: select count(*) from gin_tbl where p @> array[800]; -count +count +----- + 1 +(1 row) -1 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wa2: insert into gin_tbl values (array[1]); step wo1: insert into other_tbl values (1); step c1: commit; @@ -238,13 +302,17 @@ step c2: commit; starting permutation: rb1 ro2 wo1 c1 wa2 c2 step rb1: select count(*) from gin_tbl where p @> array[2]; -count +count +----- + 1 +(1 row) -1 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wo1: insert into other_tbl values (1); step c1: commit; step wa2: insert into gin_tbl values (array[1]); @@ -252,13 +320,17 @@ step c2: commit; starting permutation: ro2 rb1 wo1 c1 wc2 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step rb1: select count(*) from gin_tbl where p @> array[2]; -count +count +----- + 1 +(1 row) -1 step wo1: insert into other_tbl values (1); step c1: commit; step wc2: insert into gin_tbl values (array[800]); @@ -266,13 +338,17 @@ step c2: commit; starting permutation: ro2 ra1 wo1 wb2 c1 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step ra1: select * from gin_tbl where p @> array[1] limit 1; -p +p +--- +{1} +(1 row) -{1} step wo1: insert into other_tbl values (1); step wb2: insert into gin_tbl values (array[2]); step c1: commit; @@ -280,13 +356,17 @@ step c2: commit; starting permutation: rc1 ro2 wb2 wo1 c1 c2 step rc1: select count(*) from gin_tbl where p @> array[800]; -count +count +----- + 1 +(1 row) -1 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wb2: insert into gin_tbl values (array[2]); step wo1: insert into other_tbl values (1); step c1: commit; @@ -294,13 +374,17 @@ step c2: commit; starting permutation: rc1 ro2 wo1 c1 wa2 c2 step rc1: select count(*) from gin_tbl where p @> array[800]; -count +count +----- + 1 +(1 row) -1 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wo1: insert into other_tbl values (1); step c1: commit; step wa2: insert into gin_tbl values (array[1]); @@ -308,13 +392,17 @@ step c2: commit; starting permutation: ro2 rc1 wo1 c1 wb2 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step rc1: select count(*) from gin_tbl where p @> array[800]; -count +count +----- + 1 +(1 row) -1 step wo1: insert into other_tbl values (1); step c1: commit; step wb2: insert into gin_tbl values (array[2]); @@ -322,13 +410,17 @@ step c2: commit; starting permutation: ro2 ra1 wo1 wc2 c1 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step ra1: select * from gin_tbl where p @> array[1] limit 1; -p +p +--- +{1} +(1 row) -{1} step wo1: insert into other_tbl values (1); step wc2: insert into gin_tbl values (array[800]); step c1: commit; @@ -336,13 +428,17 @@ step c2: commit; starting permutation: rb1 ro2 wc2 wo1 c1 c2 step rb1: select count(*) from gin_tbl where p @> array[2]; -count +count +----- + 1 +(1 row) -1 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wc2: insert into gin_tbl values (array[800]); step wo1: insert into other_tbl values (1); step c1: commit; @@ -351,13 +447,17 @@ step c2: commit; starting permutation: fu ra1 ro2 wo1 c1 wa2 c2 step fu: alter index ginidx set (fastupdate = on); step ra1: select * from gin_tbl where p @> array[1] limit 1; -p +p +--- +{1} +(1 row) -{1} step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wo1: insert into other_tbl values (1); step c1: commit; step wa2: insert into gin_tbl values (array[1]); @@ -367,13 +467,17 @@ step c2: commit; starting permutation: fu ra1 ro2 wo1 c1 wb2 c2 step fu: alter index ginidx set (fastupdate = on); step ra1: select * from gin_tbl where p @> array[1] limit 1; -p +p +--- +{1} +(1 row) -{1} step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wo1: insert into other_tbl values (1); step c1: commit; step wb2: insert into gin_tbl values (array[2]); @@ -382,13 +486,17 @@ step c2: commit; starting permutation: ra1 ro2 wo1 c1 fu wa2 c2 step ra1: select * from gin_tbl where p @> array[1] limit 1; -p +p +--- +{1} +(1 row) -{1} step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wo1: insert into other_tbl values (1); step c1: commit; step fu: alter index ginidx set (fastupdate = on); @@ -398,13 +506,17 @@ step c2: commit; starting permutation: rd1 ro2 wo1 c1 wd2 c2 step rd1: select count(*) from gin_tbl where p @> array[2000]; -count +count +----- + 0 +(1 row) -0 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wo1: insert into other_tbl values (1); step c1: commit; step wd2: insert into gin_tbl values (array[2000]); @@ -413,13 +525,17 @@ step c2: commit; starting permutation: ro2 rd1 wo1 c1 wd2 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step rd1: select count(*) from gin_tbl where p @> array[2000]; -count +count +----- + 0 +(1 row) -0 step wo1: insert into other_tbl values (1); step c1: commit; step wd2: insert into gin_tbl values (array[2000]); @@ -428,13 +544,17 @@ step c2: commit; starting permutation: ro2 rd1 wo1 wd2 c1 c2 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step rd1: select count(*) from gin_tbl where p @> array[2000]; -count +count +----- + 0 +(1 row) -0 step wo1: insert into other_tbl values (1); step wd2: insert into gin_tbl values (array[2000]); step c1: commit; @@ -443,13 +563,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rd1 ro2 wd2 wo1 c1 c2 step rd1: select count(*) from gin_tbl where p @> array[2000]; -count +count +----- + 0 +(1 row) -0 step ro2: select count(*) from other_tbl; -count +count +----- + 0 +(1 row) -0 step wd2: insert into gin_tbl values (array[2000]); step wo1: insert into other_tbl values (1); step c1: commit; diff --git a/src/test/isolation/expected/predicate-gist.out b/src/test/isolation/expected/predicate-gist.out index 77a27958af..ef5d38630d 100644 --- a/src/test/isolation/expected/predicate-gist.out +++ b/src/test/isolation/expected/predicate-gist.out @@ -2,79 +2,99 @@ Parsed test spec with 2 sessions starting permutation: rxy1 wx1 c1 rxy2 wy2 c2 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; step c1: commit; step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2233750 +(1 row) -2233750 step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; step c2: commit; starting permutation: rxy2 wy2 c2 rxy1 wx1 c1 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; step c2: commit; step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +316250 +(1 row) -316250 step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; step c1: commit; starting permutation: rxy3 wx3 c1 rxy4 wy4 c2 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; step c1: commit; step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; step c2: commit; starting permutation: rxy4 wy4 c2 rxy3 wx3 c1 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; step c2: commit; step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; step c1: commit; starting permutation: rxy1 wx1 rxy2 c1 wy2 c2 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step c1: commit; step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; @@ -83,15 +103,19 @@ step c2: commit; starting permutation: rxy1 wx1 rxy2 wy2 c1 c2 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; step c1: commit; @@ -100,15 +124,19 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 wx1 rxy2 wy2 c2 c1 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; step c2: commit; @@ -117,13 +145,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 rxy2 wx1 c1 wy2 c2 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; step c1: commit; @@ -134,13 +166,17 @@ step c2: commit; starting permutation: rxy1 rxy2 wx1 wy2 c1 c2 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; step wy2: insert into gist_point_tbl (id, p) @@ -151,13 +187,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 rxy2 wx1 wy2 c2 c1 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; step wy2: insert into gist_point_tbl (id, p) @@ -168,13 +208,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 rxy2 wy2 wx1 c1 c2 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; step wx1: insert into gist_point_tbl (id, p) @@ -185,13 +229,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 rxy2 wy2 wx1 c2 c1 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; step wx1: insert into gist_point_tbl (id, p) @@ -202,13 +250,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 rxy2 wy2 c2 wx1 c1 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; step c2: commit; @@ -219,13 +271,17 @@ step c1: commit; starting permutation: rxy2 rxy1 wx1 c1 wy2 c2 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; step c1: commit; @@ -236,13 +292,17 @@ step c2: commit; starting permutation: rxy2 rxy1 wx1 wy2 c1 c2 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; step wy2: insert into gist_point_tbl (id, p) @@ -253,13 +313,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy2 rxy1 wx1 wy2 c2 c1 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; step wy2: insert into gist_point_tbl (id, p) @@ -270,13 +334,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy2 rxy1 wy2 wx1 c1 c2 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; step wx1: insert into gist_point_tbl (id, p) @@ -287,13 +355,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy2 rxy1 wy2 wx1 c2 c1 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; step wx1: insert into gist_point_tbl (id, p) @@ -304,13 +376,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy2 rxy1 wy2 c2 wx1 c1 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; step c2: commit; @@ -321,15 +397,19 @@ step c1: commit; starting permutation: rxy2 wy2 rxy1 wx1 c1 c2 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; step c1: commit; @@ -338,15 +418,19 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy2 wy2 rxy1 wx1 c2 c1 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; step c2: commit; @@ -355,15 +439,19 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy2 wy2 rxy1 c2 wx1 c1 step rxy2: select sum(p[0]) from gist_point_tbl where p >> point(7500,7500); -sum + sum +------- +2188750 +(1 row) -2188750 step wy2: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(1, 5) g; step rxy1: select sum(p[0]) from gist_point_tbl where p << point(2500, 2500); -sum + sum +------ +311250 +(1 row) -311250 step c2: commit; step wx1: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(15, 20) g; @@ -372,15 +460,19 @@ step c1: commit; starting permutation: rxy3 wx3 rxy4 c1 wy4 c2 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step c1: commit; step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; @@ -388,15 +480,19 @@ step c2: commit; starting permutation: rxy3 wx3 rxy4 wy4 c1 c2 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; step c1: commit; @@ -404,15 +500,19 @@ step c2: commit; starting permutation: rxy3 wx3 rxy4 wy4 c2 c1 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; step c2: commit; @@ -420,13 +520,17 @@ step c1: commit; starting permutation: rxy3 rxy4 wx3 c1 wy4 c2 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; step c1: commit; @@ -436,13 +540,17 @@ step c2: commit; starting permutation: rxy3 rxy4 wx3 wy4 c1 c2 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; step wy4: insert into gist_point_tbl (id, p) @@ -452,13 +560,17 @@ step c2: commit; starting permutation: rxy3 rxy4 wx3 wy4 c2 c1 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; step wy4: insert into gist_point_tbl (id, p) @@ -468,13 +580,17 @@ step c1: commit; starting permutation: rxy3 rxy4 wy4 wx3 c1 c2 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; step wx3: insert into gist_point_tbl (id, p) @@ -484,13 +600,17 @@ step c2: commit; starting permutation: rxy3 rxy4 wy4 wx3 c2 c1 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; step wx3: insert into gist_point_tbl (id, p) @@ -500,13 +620,17 @@ step c1: commit; starting permutation: rxy3 rxy4 wy4 c2 wx3 c1 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; step c2: commit; @@ -516,13 +640,17 @@ step c1: commit; starting permutation: rxy4 rxy3 wx3 c1 wy4 c2 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; step c1: commit; @@ -532,13 +660,17 @@ step c2: commit; starting permutation: rxy4 rxy3 wx3 wy4 c1 c2 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; step wy4: insert into gist_point_tbl (id, p) @@ -548,13 +680,17 @@ step c2: commit; starting permutation: rxy4 rxy3 wx3 wy4 c2 c1 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; step wy4: insert into gist_point_tbl (id, p) @@ -564,13 +700,17 @@ step c1: commit; starting permutation: rxy4 rxy3 wy4 wx3 c1 c2 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; step wx3: insert into gist_point_tbl (id, p) @@ -580,13 +720,17 @@ step c2: commit; starting permutation: rxy4 rxy3 wy4 wx3 c2 c1 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; step wx3: insert into gist_point_tbl (id, p) @@ -596,13 +740,17 @@ step c1: commit; starting permutation: rxy4 rxy3 wy4 c2 wx3 c1 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; step c2: commit; @@ -612,15 +760,19 @@ step c1: commit; starting permutation: rxy4 wy4 rxy3 wx3 c1 c2 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; step c1: commit; @@ -628,15 +780,19 @@ step c2: commit; starting permutation: rxy4 wy4 rxy3 wx3 c2 c1 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; step c2: commit; @@ -644,15 +800,19 @@ step c1: commit; starting permutation: rxy4 wy4 rxy3 c2 wx3 c1 step rxy4: select sum(p[0]) from gist_point_tbl where p << point(1000,1000); -sum + sum +----- +49500 +(1 row) -49500 step wy4: insert into gist_point_tbl (id, p) select g, point(g*50, g*50) from generate_series(1, 20) g; step rxy3: select sum(p[0]) from gist_point_tbl where p >> point(6000,6000); -sum + sum +------- +3202000 +(1 row) -3202000 step c2: commit; step wx3: insert into gist_point_tbl (id, p) select g, point(g*500, g*500) from generate_series(12, 18) g; diff --git a/src/test/isolation/expected/predicate-hash.out b/src/test/isolation/expected/predicate-hash.out index 53e500fd26..2009252dca 100644 --- a/src/test/isolation/expected/predicate-hash.out +++ b/src/test/isolation/expected/predicate-hash.out @@ -2,79 +2,99 @@ Parsed test spec with 2 sessions starting permutation: rxy1 wx1 c1 rxy2 wy2 c2 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; step c1: commit; step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +600 +(1 row) -600 step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; step c2: commit; starting permutation: rxy2 wy2 c2 rxy1 wx1 c1 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; step c2: commit; step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +400 +(1 row) -400 step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; step c1: commit; starting permutation: rxy3 wx3 c1 rxy4 wy4 c2 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; step c1: commit; step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; step c2: commit; starting permutation: rxy4 wy4 c2 rxy3 wx3 c1 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; step c2: commit; step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; step c1: commit; starting permutation: rxy1 wx1 rxy2 c1 wy2 c2 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step c1: commit; step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; @@ -83,15 +103,19 @@ step c2: commit; starting permutation: rxy1 wx1 rxy2 wy2 c1 c2 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; step c1: commit; @@ -100,15 +124,19 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 wx1 rxy2 wy2 c2 c1 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; step c2: commit; @@ -117,13 +145,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 rxy2 wx1 c1 wy2 c2 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; step c1: commit; @@ -134,13 +166,17 @@ step c2: commit; starting permutation: rxy1 rxy2 wx1 wy2 c1 c2 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; step wy2: insert into hash_tbl (id, p) @@ -151,13 +187,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 rxy2 wx1 wy2 c2 c1 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; step wy2: insert into hash_tbl (id, p) @@ -168,13 +208,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 rxy2 wy2 wx1 c1 c2 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; step wx1: insert into hash_tbl (id, p) @@ -185,13 +229,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 rxy2 wy2 wx1 c2 c1 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; step wx1: insert into hash_tbl (id, p) @@ -202,13 +250,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy1 rxy2 wy2 c2 wx1 c1 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; step c2: commit; @@ -219,13 +271,17 @@ step c1: commit; starting permutation: rxy2 rxy1 wx1 c1 wy2 c2 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; step c1: commit; @@ -236,13 +292,17 @@ step c2: commit; starting permutation: rxy2 rxy1 wx1 wy2 c1 c2 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; step wy2: insert into hash_tbl (id, p) @@ -253,13 +313,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy2 rxy1 wx1 wy2 c2 c1 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; step wy2: insert into hash_tbl (id, p) @@ -270,13 +334,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy2 rxy1 wy2 wx1 c1 c2 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; step wx1: insert into hash_tbl (id, p) @@ -287,13 +355,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy2 rxy1 wy2 wx1 c2 c1 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; step wx1: insert into hash_tbl (id, p) @@ -304,13 +376,17 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy2 rxy1 wy2 c2 wx1 c1 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; step c2: commit; @@ -321,15 +397,19 @@ step c1: commit; starting permutation: rxy2 wy2 rxy1 wx1 c1 c2 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; step c1: commit; @@ -338,15 +418,19 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy2 wy2 rxy1 wx1 c2 c1 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; step c2: commit; @@ -355,15 +439,19 @@ ERROR: could not serialize access due to read/write dependencies among transact starting permutation: rxy2 wy2 rxy1 c2 wx1 c1 step rxy2: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy2: insert into hash_tbl (id, p) select g, 20 from generate_series(51, 60) g; step rxy1: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step c2: commit; step wx1: insert into hash_tbl (id, p) select g, 30 from generate_series(41, 50) g; @@ -372,15 +460,19 @@ step c1: commit; starting permutation: rxy3 wx3 rxy4 c1 wy4 c2 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step c1: commit; step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; @@ -388,15 +480,19 @@ step c2: commit; starting permutation: rxy3 wx3 rxy4 wy4 c1 c2 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; step c1: commit; @@ -404,15 +500,19 @@ step c2: commit; starting permutation: rxy3 wx3 rxy4 wy4 c2 c1 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; step c2: commit; @@ -420,13 +520,17 @@ step c1: commit; starting permutation: rxy3 rxy4 wx3 c1 wy4 c2 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; step c1: commit; @@ -436,13 +540,17 @@ step c2: commit; starting permutation: rxy3 rxy4 wx3 wy4 c1 c2 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; step wy4: insert into hash_tbl (id, p) @@ -452,13 +560,17 @@ step c2: commit; starting permutation: rxy3 rxy4 wx3 wy4 c2 c1 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; step wy4: insert into hash_tbl (id, p) @@ -468,13 +580,17 @@ step c1: commit; starting permutation: rxy3 rxy4 wy4 wx3 c1 c2 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; step wx3: insert into hash_tbl (id, p) @@ -484,13 +600,17 @@ step c2: commit; starting permutation: rxy3 rxy4 wy4 wx3 c2 c1 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; step wx3: insert into hash_tbl (id, p) @@ -500,13 +620,17 @@ step c1: commit; starting permutation: rxy3 rxy4 wy4 c2 wx3 c1 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; step c2: commit; @@ -516,13 +640,17 @@ step c1: commit; starting permutation: rxy4 rxy3 wx3 c1 wy4 c2 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; step c1: commit; @@ -532,13 +660,17 @@ step c2: commit; starting permutation: rxy4 rxy3 wx3 wy4 c1 c2 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; step wy4: insert into hash_tbl (id, p) @@ -548,13 +680,17 @@ step c2: commit; starting permutation: rxy4 rxy3 wx3 wy4 c2 c1 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; step wy4: insert into hash_tbl (id, p) @@ -564,13 +700,17 @@ step c1: commit; starting permutation: rxy4 rxy3 wy4 wx3 c1 c2 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; step wx3: insert into hash_tbl (id, p) @@ -580,13 +720,17 @@ step c2: commit; starting permutation: rxy4 rxy3 wy4 wx3 c2 c1 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; step wx3: insert into hash_tbl (id, p) @@ -596,13 +740,17 @@ step c1: commit; starting permutation: rxy4 rxy3 wy4 c2 wx3 c1 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; step c2: commit; @@ -612,15 +760,19 @@ step c1: commit; starting permutation: rxy4 wy4 rxy3 wx3 c1 c2 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; step c1: commit; @@ -628,15 +780,19 @@ step c2: commit; starting permutation: rxy4 wy4 rxy3 wx3 c2 c1 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; step c2: commit; @@ -644,15 +800,19 @@ step c1: commit; starting permutation: rxy4 wy4 rxy3 c2 wx3 c1 step rxy4: select sum(p) from hash_tbl where p=30; -sum +sum +--- +300 +(1 row) -300 step wy4: insert into hash_tbl (id, p) select g, 60 from generate_series(51, 60) g; step rxy3: select sum(p) from hash_tbl where p=20; -sum +sum +--- +200 +(1 row) -200 step c2: commit; step wx3: insert into hash_tbl (id, p) select g, 50 from generate_series(41, 50) g; diff --git a/src/test/isolation/expected/predicate-lock-hot-tuple.out b/src/test/isolation/expected/predicate-lock-hot-tuple.out index d1c69bbbd0..d316edbdaa 100644 --- a/src/test/isolation/expected/predicate-lock-hot-tuple.out +++ b/src/test/isolation/expected/predicate-lock-hot-tuple.out @@ -4,15 +4,19 @@ starting permutation: b1 b2 r1 r2 w1 w2 c1 c2 step b1: BEGIN ISOLATION LEVEL SERIALIZABLE; step b2: BEGIN ISOLATION LEVEL SERIALIZABLE; step r1: SELECT * FROM test WHERE i IN (5, 7) -i t +i|t +-+---------------- +5|apple +7|pear_hot_updated +(2 rows) -5 apple -7 pear_hot_updated step r2: SELECT * FROM test WHERE i IN (5, 7) -i t +i|t +-+---------------- +5|apple +7|pear_hot_updated +(2 rows) -5 apple -7 pear_hot_updated step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7 step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5 step c1: COMMIT; diff --git a/src/test/isolation/expected/prepared-transactions-cic.out b/src/test/isolation/expected/prepared-transactions-cic.out index 043ec3c363..ac0ee69b82 100644 --- a/src/test/isolation/expected/prepared-transactions-cic.out +++ b/src/test/isolation/expected/prepared-transactions-cic.out @@ -13,6 +13,8 @@ step r2: SET enable_bitmapscan to off; SELECT * FROM cic_test WHERE a = 1; -a +a +- +1 +(1 row) -1 diff --git a/src/test/isolation/expected/prepared-transactions.out b/src/test/isolation/expected/prepared-transactions.out index fa672f1cb0..8a66bf9392 100644 --- a/src/test/isolation/expected/prepared-transactions.out +++ b/src/test/isolation/expected/prepared-transactions.out @@ -1,15 +1,23 @@ Parsed test spec with 4 sessions starting permutation: r1 r2 w2 w3 p1 p2 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -22,19 +30,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p1 p2 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -47,19 +65,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p1 p3 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -72,19 +100,29 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p1 p3 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -97,19 +135,29 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p1 p3 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -122,19 +170,29 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p1 p3 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -147,19 +205,29 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p1 p3 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -172,19 +240,29 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p2 p1 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -197,19 +275,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p2 p1 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -222,19 +310,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p2 p3 p1 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -247,19 +345,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p2 p3 p1 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -272,19 +380,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p2 p3 c3 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -297,19 +415,29 @@ step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p2 p3 c3 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -322,19 +450,29 @@ step p1: PREPARE TRANSACTION 's1'; step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p2 p3 c3 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -347,19 +485,29 @@ step c2: COMMIT PREPARED 's2'; step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 p1 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -372,19 +520,29 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 p1 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -397,19 +555,29 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 p1 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -422,19 +590,29 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 p1 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -447,19 +625,29 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 p1 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -472,19 +660,29 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 p2 p1 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -497,19 +695,29 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 p2 p1 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -522,19 +730,29 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 p2 c3 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -547,19 +765,29 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 p2 c3 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -572,19 +800,29 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 p2 c3 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -597,19 +835,29 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 c3 p1 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -622,19 +870,29 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 c3 p1 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -647,19 +905,29 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 c3 p1 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -672,19 +940,29 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 c3 p2 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -697,19 +975,29 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 c3 p2 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -722,19 +1010,29 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 w3 p3 c3 p2 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -747,19 +1045,29 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p1 w3 p2 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -772,19 +1080,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p1 w3 p2 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -797,19 +1115,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p1 w3 p3 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -822,19 +1150,29 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p1 w3 p3 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -847,19 +1185,29 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p1 w3 p3 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -872,19 +1220,29 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p1 w3 p3 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -897,19 +1255,29 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p1 w3 p3 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -922,19 +1290,29 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p1 p2 w3 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -947,19 +1325,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p1 p2 w3 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -972,19 +1360,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p2 w3 p1 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -997,19 +1395,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p2 w3 p1 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -1022,19 +1430,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p2 w3 p3 p1 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -1047,19 +1465,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p2 w3 p3 p1 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -1072,19 +1500,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p2 w3 p3 c3 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -1097,19 +1535,29 @@ step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p2 w3 p3 c3 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -1122,19 +1570,29 @@ step p1: PREPARE TRANSACTION 's1'; step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p2 w3 p3 c3 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -1147,19 +1605,29 @@ step c2: COMMIT PREPARED 's2'; step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p2 p1 w3 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -1172,19 +1640,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 w2 p2 p1 w3 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -1197,19 +1675,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 p1 w2 w3 p2 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -1222,19 +1710,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 p1 w2 w3 p2 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -1247,19 +1745,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 p1 w2 w3 p3 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -1272,19 +1780,29 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 p1 w2 w3 p3 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -1297,19 +1815,29 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 p1 w2 w3 p3 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -1322,19 +1850,29 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 p1 w2 w3 p3 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -1347,19 +1885,29 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 p1 w2 w3 p3 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -1372,19 +1920,29 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 p1 w2 p2 w3 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -1397,19 +1955,29 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 r2 p1 w2 p2 w3 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -1422,21 +1990,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p1 p2 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p2: PREPARE TRANSACTION 's2'; @@ -1447,21 +2025,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p1 p2 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p2: PREPARE TRANSACTION 's2'; @@ -1472,21 +2060,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p1 p3 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -1497,21 +2095,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p1 p3 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -1522,21 +2130,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p1 p3 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -1547,21 +2165,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p1 p3 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -1572,21 +2200,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p1 p3 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -1597,21 +2235,31 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p2 p1 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p1: PREPARE TRANSACTION 's1'; @@ -1622,21 +2270,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p2 p1 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p1: PREPARE TRANSACTION 's1'; @@ -1647,21 +2305,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p2 p3 p1 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -1672,21 +2340,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p2 p3 p1 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -1697,21 +2375,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p2 p3 c3 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -1722,21 +2410,31 @@ step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p2 p3 c3 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -1747,21 +2445,31 @@ step p1: PREPARE TRANSACTION 's1'; step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p2 p3 c3 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -1772,21 +2480,31 @@ step c2: COMMIT PREPARED 's2'; step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 p1 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -1797,21 +2515,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 p1 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -1822,21 +2550,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 p1 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -1847,21 +2585,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 p1 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -1872,21 +2620,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 p1 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -1897,21 +2655,31 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 p2 p1 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -1922,21 +2690,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 p2 p1 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -1947,21 +2725,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 p2 c3 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -1972,21 +2760,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 p2 c3 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -1997,21 +2795,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 p2 c3 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -2022,21 +2830,31 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 c3 p1 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -2047,21 +2865,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 c3 p1 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -2072,21 +2900,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 c3 p1 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -2097,21 +2935,31 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 c3 p2 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -2122,21 +2970,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 c3 p2 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -2147,21 +3005,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 r2 p3 c3 p2 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -2172,22 +3040,32 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 r2 p2 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -2197,22 +3075,32 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 r2 p2 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -2222,22 +3110,32 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 r2 p3 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -2247,22 +3145,32 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 r2 p3 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -2272,22 +3180,32 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 r2 p3 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -2297,22 +3215,32 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 r2 p3 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -2322,22 +3250,32 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 r2 p3 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -2347,16 +3285,24 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 p3 r2 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2370,16 +3316,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 p3 r2 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2393,16 +3347,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 p3 r2 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2416,16 +3378,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 p3 r2 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2439,16 +3409,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 p3 r2 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2462,16 +3440,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 p3 c3 r2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2485,16 +3471,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 p3 c3 r2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2508,16 +3502,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 p3 c3 r2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2531,16 +3533,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p1 p3 c3 c1 r2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2554,16 +3564,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 p1 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2577,16 +3595,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 p1 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2600,16 +3626,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 p1 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2623,16 +3657,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 p1 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2646,16 +3688,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 p1 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2669,16 +3719,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 p2 p1 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2692,16 +3750,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 p2 p1 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2715,16 +3781,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 p2 c3 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2738,16 +3812,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 p2 c3 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2761,16 +3843,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 p2 c3 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2784,16 +3874,24 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 c3 p1 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2807,16 +3905,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 c3 p1 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2830,16 +3936,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 c3 p1 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2853,16 +3967,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 c3 p2 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2876,16 +3998,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 c3 p2 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2899,16 +4029,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 r2 c3 p2 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2922,16 +4060,24 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 p1 r2 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2945,16 +4091,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 p1 r2 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2968,16 +4122,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 p1 r2 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -2991,16 +4153,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 p1 r2 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3014,16 +4184,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 p1 r2 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3037,16 +4215,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 p1 c3 r2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3060,16 +4246,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 p1 c3 r2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3083,16 +4277,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 p1 c3 r2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3106,16 +4308,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 p1 c3 c1 r2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3129,16 +4339,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 c3 r2 p1 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3152,16 +4370,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 c3 r2 p1 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3175,16 +4401,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 c3 r2 p1 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3198,16 +4432,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 c3 r2 p2 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3221,16 +4463,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 c3 r2 p2 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3244,16 +4494,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 c3 r2 p2 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3267,16 +4525,24 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 c3 p1 r2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3290,16 +4556,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 c3 p1 r2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3313,16 +4587,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 c3 p1 r2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3336,16 +4618,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 w3 p3 c3 p1 c1 r2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step w3: INSERT INTO test3 VALUES (3); @@ -3359,22 +4649,32 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 r2 p2 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -3384,22 +4684,32 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 r2 p2 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -3409,22 +4719,32 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 r2 p3 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -3434,22 +4754,32 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 r2 p3 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -3459,22 +4789,32 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 r2 p3 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -3484,22 +4824,32 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 r2 p3 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -3509,22 +4859,32 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 r2 p3 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -3534,16 +4894,24 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 p3 r2 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3557,16 +4925,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 p3 r2 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3580,16 +4956,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 p3 r2 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3603,16 +4987,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 p3 r2 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3626,16 +5018,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 p3 r2 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3649,16 +5049,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 p3 c3 r2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3672,16 +5080,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 p3 c3 r2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3695,16 +5111,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 p3 c3 r2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3718,16 +5142,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w2 p1 w3 p3 c3 c1 r2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3741,20 +5173,30 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p1 p2 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3766,20 +5208,30 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p1 p2 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3791,20 +5243,30 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p1 p3 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3816,20 +5278,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p1 p3 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3841,20 +5313,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p1 p3 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3866,20 +5348,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p1 p3 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3891,20 +5383,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p1 p3 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; @@ -3916,20 +5418,30 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p2 p1 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -3941,20 +5453,30 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p2 p1 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -3966,20 +5488,30 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p2 p3 p1 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -3991,20 +5523,30 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p2 p3 p1 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -4016,20 +5558,30 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p2 p3 c3 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -4041,20 +5593,30 @@ step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p2 p3 c3 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -4066,20 +5628,30 @@ step p1: PREPARE TRANSACTION 's1'; step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p2 p3 c3 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -4091,20 +5663,30 @@ step c2: COMMIT PREPARED 's2'; step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 p1 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4116,20 +5698,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 p1 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4141,20 +5733,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 p1 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4166,20 +5768,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 p1 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4191,20 +5803,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 p1 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4216,20 +5838,30 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 p2 p1 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4241,20 +5873,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 p2 p1 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4266,20 +5908,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 p2 c3 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4291,20 +5943,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 p2 c3 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4316,20 +5978,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 p2 c3 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4341,20 +6013,30 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 c3 p1 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4366,20 +6048,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 c3 p1 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4391,20 +6083,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 c3 p1 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4416,20 +6118,30 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 c3 p2 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4441,20 +6153,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 c3 p2 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4466,20 +6188,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 w2 p3 c3 p2 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -4491,20 +6223,30 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 w2 p2 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -4516,20 +6258,30 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 w2 p2 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -4541,20 +6293,30 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 w2 p3 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -4566,20 +6328,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 w2 p3 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -4591,20 +6363,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 w2 p3 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -4616,20 +6398,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 w2 p3 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -4641,20 +6433,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 w2 p3 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -4666,20 +6468,30 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 p3 w2 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -4691,20 +6503,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 p3 w2 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -4716,20 +6538,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 p3 w2 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -4741,20 +6573,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 p3 w2 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -4766,20 +6608,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 p3 w2 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -4791,20 +6643,30 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 p3 c3 w2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -4816,20 +6678,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 p3 c3 w2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -4841,20 +6713,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 p3 c3 w2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -4866,20 +6748,30 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p1 p3 c3 c1 w2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -4891,20 +6783,30 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 p1 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -4916,20 +6818,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 p1 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -4941,20 +6853,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 p1 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -4966,20 +6888,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 p1 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -4991,20 +6923,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 p1 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -5016,20 +6958,30 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 p2 p1 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -5041,20 +6993,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 p2 p1 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -5066,20 +7028,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 p2 c3 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -5091,20 +7063,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 p2 c3 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -5116,20 +7098,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 p2 c3 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -5141,20 +7133,30 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 c3 p1 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -5166,20 +7168,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 c3 p1 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -5191,20 +7203,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 c3 p1 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -5216,20 +7238,30 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 c3 p2 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -5241,20 +7273,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 c3 p2 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -5266,20 +7308,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 w2 c3 p2 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -5291,20 +7343,30 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 p1 w2 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -5316,20 +7378,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 p1 w2 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -5341,20 +7413,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 p1 w2 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -5366,20 +7448,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 p1 w2 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -5391,20 +7483,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 p1 w2 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -5416,20 +7518,30 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 p1 c3 w2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -5441,20 +7553,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 p1 c3 w2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -5466,20 +7588,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 p1 c3 w2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -5491,20 +7623,30 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 p1 c3 c1 w2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -5516,20 +7658,30 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 c3 w2 p1 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -5541,20 +7693,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 c3 w2 p1 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -5566,20 +7728,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 c3 w2 p1 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -5591,20 +7763,30 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 c3 w2 p2 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -5616,20 +7798,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 c3 w2 p2 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -5641,20 +7833,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 c3 w2 p2 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -5666,20 +7868,30 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 c3 p1 w2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -5691,20 +7903,30 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 c3 p1 w2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -5716,20 +7938,30 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 c3 p1 w2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -5741,20 +7973,30 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 r2 p3 c3 p1 c1 w2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -5766,21 +8008,31 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p1 p2 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p2: PREPARE TRANSACTION 's2'; @@ -5791,21 +8043,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p1 p2 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p2: PREPARE TRANSACTION 's2'; @@ -5816,21 +8078,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p1 p3 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -5841,21 +8113,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p1 p3 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -5866,21 +8148,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p1 p3 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -5891,21 +8183,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p1 p3 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -5916,21 +8218,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p1 p3 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; @@ -5941,21 +8253,31 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p2 p1 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p1: PREPARE TRANSACTION 's1'; @@ -5966,21 +8288,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p2 p1 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p1: PREPARE TRANSACTION 's1'; @@ -5991,21 +8323,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p2 p3 p1 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -6016,21 +8358,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p2 p3 p1 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -6041,21 +8393,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p2 p3 c3 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -6066,21 +8428,31 @@ step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p2 p3 c3 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -6091,21 +8463,31 @@ step p1: PREPARE TRANSACTION 's1'; step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p2 p3 c3 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -6116,21 +8498,31 @@ step c2: COMMIT PREPARED 's2'; step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 p1 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -6141,21 +8533,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 p1 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -6166,21 +8568,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 p1 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -6191,21 +8603,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 p1 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -6216,21 +8638,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 p1 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p1: PREPARE TRANSACTION 's1'; @@ -6241,21 +8673,31 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 p2 p1 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -6266,21 +8708,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 p2 p1 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -6291,21 +8743,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 p2 c3 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -6316,21 +8778,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 p2 c3 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -6341,21 +8813,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 p2 c3 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -6366,21 +8848,31 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 c3 p1 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -6391,21 +8883,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 c3 p1 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -6416,21 +8918,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 c3 p1 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -6441,21 +8953,31 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 c3 p2 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -6466,21 +8988,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 c3 p2 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -6491,21 +9023,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 r2 p3 c3 p2 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -6516,22 +9058,32 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 r2 p2 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -6541,22 +9093,32 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 r2 p2 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -6566,22 +9128,32 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 r2 p3 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -6591,22 +9163,32 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 r2 p3 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -6616,22 +9198,32 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 r2 p3 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -6641,22 +9233,32 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 r2 p3 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -6666,22 +9268,32 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 r2 p3 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -6691,16 +9303,24 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 p3 r2 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -6714,16 +9334,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 p3 r2 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -6737,16 +9365,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 p3 r2 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -6760,16 +9396,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 p3 r2 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -6783,16 +9427,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 p3 r2 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -6806,16 +9458,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 p3 c3 r2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -6829,16 +9489,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 p3 c3 r2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -6852,16 +9520,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 p3 c3 r2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -6875,16 +9551,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p1 p3 c3 c1 r2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -6898,16 +9582,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 p1 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -6921,16 +9613,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 p1 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -6944,16 +9644,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 p1 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -6967,16 +9675,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 p1 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -6990,16 +9706,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 p1 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7013,16 +9737,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 p2 p1 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7036,16 +9768,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 p2 p1 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7059,16 +9799,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 p2 c3 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7082,16 +9830,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 p2 c3 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7105,16 +9861,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 p2 c3 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7128,16 +9892,24 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 c3 p1 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7151,16 +9923,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 c3 p1 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7174,16 +9954,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 c3 p1 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7197,16 +9985,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 c3 p2 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7220,16 +10016,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 c3 p2 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7243,16 +10047,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 r2 c3 p2 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7266,16 +10078,24 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 p1 r2 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7289,16 +10109,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 p1 r2 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7312,16 +10140,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 p1 r2 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7335,16 +10171,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 p1 r2 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7358,16 +10202,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 p1 r2 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7381,16 +10233,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 p1 c3 r2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7404,16 +10264,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 p1 c3 r2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7427,16 +10295,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 p1 c3 r2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7450,16 +10326,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 p1 c3 c1 r2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7473,16 +10357,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 c3 r2 p1 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7496,16 +10388,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 c3 r2 p1 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7519,16 +10419,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 c3 r2 p1 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7542,16 +10450,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 c3 r2 p2 p1 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7565,16 +10481,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 c3 r2 p2 p1 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7588,16 +10512,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 c3 r2 p2 c2 p1 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7611,16 +10543,24 @@ ERROR: prepared transaction with identifier "s2" does not exist step p1: PREPARE TRANSACTION 's1'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 c3 p1 r2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7634,16 +10574,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 c3 p1 r2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7657,16 +10605,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 c3 p1 r2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7680,16 +10636,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 w2 p3 c3 p1 c1 r2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step w2: INSERT INTO test2 VALUES (2); @@ -7703,21 +10667,31 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 w2 p2 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -7728,21 +10702,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 w2 p2 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p2: PREPARE TRANSACTION 's2'; @@ -7753,21 +10737,31 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 w2 p3 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -7778,21 +10772,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 w2 p3 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -7803,21 +10807,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 w2 p3 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -7828,21 +10842,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 w2 p3 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -7853,21 +10877,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 w2 p3 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); step p3: PREPARE TRANSACTION 's3'; @@ -7878,21 +10912,31 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 p3 w2 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -7903,21 +10947,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 p3 w2 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -7928,21 +10982,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 p3 w2 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -7953,21 +11017,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 p3 w2 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -7978,21 +11052,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 p3 w2 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -8003,21 +11087,31 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 p3 c3 w2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -8028,21 +11122,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 p3 c3 w2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -8053,21 +11157,31 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 p3 c3 w2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -8078,21 +11192,31 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 r2 p3 c3 c1 w2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -8103,22 +11227,32 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 r2 p2 p3 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -8128,22 +11262,32 @@ ERROR: prepared transaction with identifier "s3" does not exist step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 r2 p2 p3 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p2: PREPARE TRANSACTION 's2'; step p3: PREPARE TRANSACTION 's3'; @@ -8153,22 +11297,32 @@ ERROR: prepared transaction with identifier "s3" does not exist step c2: COMMIT PREPARED 's2'; step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 r2 p3 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -8178,22 +11332,32 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 r2 p3 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step p2: PREPARE TRANSACTION 's2'; @@ -8203,22 +11367,32 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 r2 p3 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -8228,22 +11402,32 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 r2 p3 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -8253,22 +11437,32 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 r2 p3 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step w2: INSERT INTO test2 VALUES (2); step r2: SELECT * FROM test3; -c +c +- +(0 rows) step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; @@ -8278,16 +11472,24 @@ ERROR: could not serialize access due to read/write dependencies among transact step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 p3 r2 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8301,16 +11503,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 p3 r2 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8324,16 +11534,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 p3 r2 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8347,16 +11565,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 p3 r2 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8370,16 +11596,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 p3 r2 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8393,16 +11627,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 p3 c3 r2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8416,16 +11658,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 p3 c3 r2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8439,16 +11689,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 p3 c3 r2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8462,16 +11720,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 w2 p3 c3 c1 r2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8485,22 +11751,32 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 r2 w2 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); ERROR: could not serialize access due to read/write dependencies among transactions @@ -8510,22 +11786,32 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 r2 w2 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); ERROR: could not serialize access due to read/write dependencies among transactions @@ -8535,22 +11821,32 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 r2 w2 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); ERROR: could not serialize access due to read/write dependencies among transactions @@ -8560,22 +11856,32 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 r2 w2 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); ERROR: could not serialize access due to read/write dependencies among transactions @@ -8585,22 +11891,32 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 r2 w2 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); ERROR: could not serialize access due to read/write dependencies among transactions @@ -8610,22 +11926,32 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 r2 c3 w2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step c3: COMMIT PREPARED 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -8635,22 +11961,32 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 r2 c3 w2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step c3: COMMIT PREPARED 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -8660,22 +11996,32 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 r2 c3 w2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step c3: COMMIT PREPARED 's3'; step w2: INSERT INTO test2 VALUES (2); @@ -8685,22 +12031,32 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 r2 c3 c1 w2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step c3: COMMIT PREPARED 's3'; step c1: COMMIT PREPARED 's1'; @@ -8710,16 +12066,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 w2 r2 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8733,16 +12097,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 w2 r2 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8756,16 +12128,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 w2 r2 c3 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8779,16 +12159,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 w2 r2 c3 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8802,16 +12190,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 w2 r2 c3 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8825,16 +12221,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 w2 c3 r2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8848,16 +12252,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 w2 c3 r2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8871,16 +12283,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 w2 c3 r2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8894,16 +12314,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 w2 c3 c1 r2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -8917,23 +12345,33 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 c3 r2 w2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); ERROR: could not serialize access due to read/write dependencies among transactions @@ -8942,23 +12380,33 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 c3 r2 w2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); ERROR: could not serialize access due to read/write dependencies among transactions @@ -8967,23 +12415,33 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 c3 r2 w2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); ERROR: could not serialize access due to read/write dependencies among transactions @@ -8992,23 +12450,33 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 c3 r2 c1 w2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step c1: COMMIT PREPARED 's1'; step w2: INSERT INTO test2 VALUES (2); @@ -9017,16 +12485,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 c3 w2 r2 p2 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -9040,16 +12516,24 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 c3 w2 r2 p2 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -9063,16 +12547,24 @@ step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step c1: COMMIT PREPARED 's1'; step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 c3 w2 r2 c1 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -9086,16 +12578,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 c3 w2 c1 r2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -9109,16 +12609,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 c3 c1 r2 w2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -9126,7 +12634,9 @@ step p3: PREPARE TRANSACTION 's3'; step c3: COMMIT PREPARED 's3'; step c1: COMMIT PREPARED 's1'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); ERROR: could not serialize access due to read/write dependencies among transactions @@ -9134,16 +12644,24 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p1 p3 c3 c1 w2 r2 p2 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p1: PREPARE TRANSACTION 's1'; @@ -9157,21 +12675,31 @@ step p2: PREPARE TRANSACTION 's2'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p3 r2 w2 p1 p2 c3 c1 c2 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p3: PREPARE TRANSACTION 's3'; step r2: SELECT * FROM test3; -c +c +- +(0 rows) step w2: INSERT INTO test2 VALUES (2); ERROR: could not serialize access due to read/write dependencies among transactions @@ -9182,21 +12710,31 @@ step c1: COMMIT PREPARED 's1'; step c2: COMMIT PREPARED 's2'; ERROR: prepared transaction with identifier "s2" does not exist step check: SELECT * FROM test1,test2,test3; -a b c +a|b|c +-+-+- +(0 rows) starting permutation: r1 w3 p3 r2 w2 p1 p2 c3 c2 c1 check -a +a +- +(0 rows) -a +a +- +(0 rows) step r1: SELECT * FROM test2; -b +b +- +(0 rows) step w3: INSERT INTO test3 VALUES (3); step p3: PREPARE TRANSACTION 's3'; step r2: SELECT * FROM test3; |