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? -------- f (1 row) step s1init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); step s3b: BEGIN; step s3txid: SELECT pg_current_xact_id() IS NULL; ?column? -------- f (1 row) 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? -------- f (1 row) step s3c: COMMIT; step s1init: <... completed> ?column? -------- init (1 row) 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 table public.do_write: INSERT: id[integer]:1 addedbys2[integer]:null 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 table public.do_write: INSERT: id[integer]:3 addedbys2[integer]:null addedbys1[integer]:null COMMIT (8 rows) ?column? -------- stop (1 row)