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 (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 (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 (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; step rxy2: select * from test_t where val2 = 1; ERROR: could not serialize access due to read/write dependencies among transactions 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 (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 (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 (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 (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 (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; step rxy2: select * from test_t where val2 = 1; ERROR: could not serialize access due to read/write dependencies among transactions 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 (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 (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 (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 (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 (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 (10 rows) step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c1: COMMIT; step c2: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions 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 (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 (10 rows) step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c2: COMMIT; step c1: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions 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 (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 (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 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 (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; ERROR: could not serialize access due to read/write dependencies among transactions 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 (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 (10 rows) step c1: COMMIT; step c2: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions 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 (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 (10 rows) step c2: COMMIT; step c1: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions 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 (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 (10 rows) step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c1: COMMIT; step c2: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions 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 (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 (10 rows) step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c2: COMMIT; step c1: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions 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 (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 (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 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 (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 (11 rows) step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c1: COMMIT; step c2: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions 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 (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 (11 rows) step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c2: COMMIT; step c1: COMMIT; ERROR: could not serialize access due to read/write dependencies among transactions 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 (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 (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 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 (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 (10 rows) step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10; step c1: COMMIT;