Parsed test spec with 3 sessions starting permutation: s1_begin s2_begin s3_begin s1_update s2_key_share s3_key_share s1_update s1_commit s2_commit s2_vacuum s1_selectone s3_commit s2_vacuum s1_selectall step s1_begin: BEGIN; 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 -- 3 (1 row) step s3_key_share: SELECT id FROM tab_freeze WHERE id = 3 FOR KEY SHARE; id -- 3 (1 row) step s1_update: UPDATE tab_freeze SET x = x + 1 WHERE id = 3; step s1_commit: COMMIT; step s2_commit: COMMIT; step s2_vacuum: VACUUM FREEZE tab_freeze; step s1_selectone: BEGIN; SET LOCAL enable_seqscan = false; SET LOCAL enable_bitmapscan = false; SELECT * FROM tab_freeze WHERE id = 3; COMMIT; id|name|x --+----+- 3| 333|2 (1 row) 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 --+----+- 1| 111|0 3| 333|2 (2 rows)