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? -------- f (1 row) 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 ----- 1 (1 row) step s2_update: UPDATE dont_forget SET value = 2; step s2_abort: ROLLBACK; step s3_forkeyshr: SELECT * FROM dont_forget FOR KEY SHARE; value ----- 1 (1 row) 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 ----- 1 (1 row) step s2_update: UPDATE dont_forget SET value = 2; step s2_commit: COMMIT; step s3_forkeyshr: SELECT * FROM dont_forget FOR KEY SHARE; value ----- 2 (1 row) 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 ----- 1 (1 row) step s2_update: UPDATE dont_forget SET value = 2; step s1_commit: COMMIT; step s3_forkeyshr: SELECT * FROM dont_forget FOR KEY SHARE; value ----- 1 (1 row) 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 ----- 1 (1 row) 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 ----- 1 (1 row) 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 ----- 1 (1 row) 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 ----- 2 (1 row) 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 ----- 1 (1 row) step s2_update: UPDATE dont_forget SET value = 2; step s1_commit: COMMIT; step s3_fornokeyupd: SELECT * FROM dont_forget FOR NO KEY UPDATE; step s2_commit: COMMIT; step s3_fornokeyupd: <... completed> value ----- 2 (1 row) starting permutation: s1_lock s2_update s2_abort s3_forupd s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; value ----- 1 (1 row) step s2_update: UPDATE dont_forget SET value = 2; step s2_abort: ROLLBACK; step s3_forupd: SELECT * FROM dont_forget FOR UPDATE; step s1_commit: COMMIT; step s3_forupd: <... completed> value ----- 1 (1 row) starting permutation: s1_lock s2_update s2_commit s3_forupd s1_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; value ----- 1 (1 row) step s2_update: UPDATE dont_forget SET value = 2; step s2_commit: COMMIT; step s3_forupd: SELECT * FROM dont_forget FOR UPDATE; step s1_commit: COMMIT; step s3_forupd: <... completed> value ----- 2 (1 row) starting permutation: s1_lock s2_update s1_commit s3_forupd s2_commit step s1_lock: SELECT * FROM dont_forget FOR KEY SHARE; value ----- 1 (1 row) step s2_update: UPDATE dont_forget SET value = 2; step s1_commit: COMMIT; step s3_forupd: SELECT * FROM dont_forget FOR UPDATE; step s2_commit: COMMIT; step s3_forupd: <... completed> value ----- 2 (1 row)