Parsed test spec with 3 sessions starting permutation: s1_init s0_begin s0_topwrite s0_outer s0_inner s0_catinsert1 s0_release_inner s0_rollback_outer s2_vacuum s0_catinsert2 s0_commit s1_get_changes step s1_init: SELECT 'init' FROM pg_create_logical_replication_slot('tuplecid_nested_slot', 'test_decoding'); ?column? -------- init (1 row) step s0_begin: BEGIN; step s0_topwrite: INSERT INTO tbl1 VALUES (0); step s0_outer: SAVEPOINT outer_sp; step s0_inner: SAVEPOINT inner_sp; step s0_catinsert1: INSERT INTO user_cat VALUES (5, 'e'); step s0_release_inner: RELEASE SAVEPOINT inner_sp; step s0_rollback_outer: ROLLBACK TO SAVEPOINT outer_sp; step s2_vacuum: VACUUM user_cat; step s0_catinsert2: INSERT INTO user_cat VALUES (6, 'f'); step s0_commit: COMMIT; step s1_get_changes: SELECT data FROM pg_logical_slot_get_changes('tuplecid_nested_slot', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0') WHERE data NOT LIKE '%user_cat%'; data ------------------------------------------ BEGIN table public.tbl1: INSERT: val1[integer]:0 COMMIT (3 rows) ?column? -------- stop (1 row)