mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-25 15:37:20 +02: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)
|
|
|