mirror of
https://github.com/postgres/postgres.git
synced 2025-05-28 05:21:27 +03:00
It has been incorrectly assumed in commit 7f13ac8123 that we can either purge all or none in the catalog modifying xids list retrieved from a serialized snapshot. It is quite possible that some of the xids in that array are old enough to be pruned but not others. As per buildfarm Author: Amit Kapila and Masahiko Sawada Reviwed-by: Masahiko Sawada Discussion: https://postgr.es/m/CAA4eK1LBtv6ayE+TvCcPmC-xse=DVg=SmbyQD1nv_AaqcpUJEg@mail.gmail.com
99 lines
3.6 KiB
Plaintext
99 lines
3.6 KiB
Plaintext
Parsed test spec with 3 sessions
|
|
|
|
starting permutation: s0_init s0_begin s0_savepoint s0_truncate s1_checkpoint s1_get_changes s0_commit s0_begin s0_insert s1_checkpoint s1_get_changes s0_commit s1_get_changes
|
|
step s0_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
|
|
?column?
|
|
--------
|
|
init
|
|
(1 row)
|
|
|
|
step s0_begin: BEGIN;
|
|
step s0_savepoint: SAVEPOINT sp1;
|
|
step s0_truncate: TRUNCATE tbl1;
|
|
step s1_checkpoint: CHECKPOINT;
|
|
step s1_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0');
|
|
data
|
|
----
|
|
(0 rows)
|
|
|
|
step s0_commit: COMMIT;
|
|
step s0_begin: BEGIN;
|
|
step s0_insert: INSERT INTO tbl1 VALUES (1);
|
|
step s1_checkpoint: CHECKPOINT;
|
|
step s1_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0');
|
|
data
|
|
---------------------------------------
|
|
BEGIN
|
|
table public.tbl1: TRUNCATE: (no-flags)
|
|
COMMIT
|
|
(3 rows)
|
|
|
|
step s0_commit: COMMIT;
|
|
step s1_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0');
|
|
data
|
|
-------------------------------------------------------------
|
|
BEGIN
|
|
table public.tbl1: INSERT: val1[integer]:1 val2[integer]:null
|
|
COMMIT
|
|
(3 rows)
|
|
|
|
?column?
|
|
--------
|
|
stop
|
|
(1 row)
|
|
|
|
|
|
starting permutation: s0_init s0_begin s0_truncate s2_begin s2_truncate s1_checkpoint s1_get_changes s0_commit s0_begin s0_insert s1_checkpoint s1_get_changes s2_commit s1_checkpoint s1_get_changes s0_commit s1_get_changes
|
|
step s0_init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding');
|
|
?column?
|
|
--------
|
|
init
|
|
(1 row)
|
|
|
|
step s0_begin: BEGIN;
|
|
step s0_truncate: TRUNCATE tbl1;
|
|
step s2_begin: BEGIN;
|
|
step s2_truncate: TRUNCATE tbl2;
|
|
step s1_checkpoint: CHECKPOINT;
|
|
step s1_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0');
|
|
data
|
|
----
|
|
(0 rows)
|
|
|
|
step s0_commit: COMMIT;
|
|
step s0_begin: BEGIN;
|
|
step s0_insert: INSERT INTO tbl1 VALUES (1);
|
|
step s1_checkpoint: CHECKPOINT;
|
|
step s1_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0');
|
|
data
|
|
---------------------------------------
|
|
BEGIN
|
|
table public.tbl1: TRUNCATE: (no-flags)
|
|
COMMIT
|
|
(3 rows)
|
|
|
|
step s2_commit: COMMIT;
|
|
step s1_checkpoint: CHECKPOINT;
|
|
step s1_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0');
|
|
data
|
|
---------------------------------------
|
|
BEGIN
|
|
table public.tbl2: TRUNCATE: (no-flags)
|
|
COMMIT
|
|
(3 rows)
|
|
|
|
step s0_commit: COMMIT;
|
|
step s1_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0');
|
|
data
|
|
-------------------------------------------------------------
|
|
BEGIN
|
|
table public.tbl1: INSERT: val1[integer]:1 val2[integer]:null
|
|
COMMIT
|
|
(3 rows)
|
|
|
|
?column?
|
|
--------
|
|
stop
|
|
(1 row)
|
|
|