Parsed test spec with 2 sessions starting permutation: s1s s1u s1r s1l s1c s2l s2c 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 ---+----- 1| 1 (1 row) step s1c: COMMIT; step s2l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) step s2c: COMMIT; starting permutation: s1s s1u s1r s1l s2l s1c s2c 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 ---+----- 1| 1 (1 row) step s2l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) step s1c: COMMIT; step s2c: COMMIT; starting permutation: s1s s1u s1r s1l s2l s2c s1c 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 ---+----- 1| 1 (1 row) step s2l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) step s2c: COMMIT; step s1c: COMMIT; starting permutation: s1s s1u s1r s2l s1l s1c s2c 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 ---+----- 1| 1 (1 row) step s1l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) step s1c: COMMIT; step s2c: COMMIT; starting permutation: s1s s1u s1r s2l s1l s2c s1c 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 ---+----- 1| 1 (1 row) step s1l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) step s2c: COMMIT; step s1c: COMMIT; starting permutation: s1s s1u s1r s2l s2c s1l s1c 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 ---+----- 1| 1 (1 row) step s2c: COMMIT; step s1l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) step s1c: COMMIT; starting permutation: s1s s1u s2l s1r s1l s1c s2c step s1s: SAVEPOINT f; step s1u: UPDATE foo SET key = 2; step s2l: SELECT * FROM foo FOR KEY SHARE; step s1r: ROLLBACK TO f; step s2l: <... completed> key|value ---+----- 1| 1 (1 row) step s1l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) step s1c: COMMIT; step s2c: COMMIT; starting permutation: s1s s1u s2l s1r s1l s2c s1c step s1s: SAVEPOINT f; step s1u: UPDATE foo SET key = 2; step s2l: SELECT * FROM foo FOR KEY SHARE; step s1r: ROLLBACK TO f; step s2l: <... completed> key|value ---+----- 1| 1 (1 row) step s1l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) step s2c: COMMIT; step s1c: COMMIT; starting permutation: s1s s1u s2l s1r s2c s1l s1c step s1s: SAVEPOINT f; step s1u: UPDATE foo SET key = 2; step s2l: SELECT * FROM foo FOR KEY SHARE; step s1r: ROLLBACK TO f; step s2l: <... completed> key|value ---+----- 1| 1 (1 row) step s2c: COMMIT; step s1l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) 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 ---+----- 1| 1 (1 row) step s1u: UPDATE foo SET key = 2; step s2c: COMMIT; step s1u: <... completed> step s1r: ROLLBACK TO f; step s1l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) 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 ---+----- 1| 1 (1 row) 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 ---+----- 1| 1 (1 row) step s1c: COMMIT; starting permutation: s2l s1s s1u s2c s1r s1l s1c step s2l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) step s1s: SAVEPOINT f; step s1u: UPDATE foo SET key = 2; step s2c: COMMIT; step s1u: <... completed> step s1r: ROLLBACK TO f; step s1l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) step s1c: COMMIT; starting permutation: s2l s1s s2c s1u s1r s1l s1c step s2l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) 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 ---+----- 1| 1 (1 row) step s1c: COMMIT; starting permutation: s2l s2c s1s s1u s1r s1l s1c step s2l: SELECT * FROM foo FOR KEY SHARE; key|value ---+----- 1| 1 (1 row) 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 ---+----- 1| 1 (1 row) step s1c: COMMIT;