mirror of
https://github.com/postgres/postgres.git
synced 2025-05-28 05:21:27 +03:00
Commit a271a1b50e added the capability to allow decoding at prepare time. This adds an isolation testcase to test that decoding happens at commit time when the consistent snapshot state is reached after prepare but before commit prepared. Author: Ajin Cherian Reviewed-by: Amit Kapila Discussion: https://postgr.es/m/02DA5F5E-CECE-4D9C-8B4B-418077E2C010@postgrespro.ru https://postgr.es/m/CAMGcDxeqEpWj3fTXwqhSwBdXd2RS9jzwWscO-XbeCfso6ts3+Q@mail.gmail.com
42 lines
1.3 KiB
Plaintext
42 lines
1.3 KiB
Plaintext
Parsed test spec with 3 sessions
|
|
|
|
starting permutation: s2b s2txid s1init s3b s3txid s2c s2b s2insert s2p s3c s1insert s1start s2cp s1start
|
|
step s2b: BEGIN;
|
|
step s2txid: SELECT pg_current_xact_id() IS NULL;
|
|
?column?
|
|
|
|
f
|
|
step s1init: SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'test_decoding'); <waiting ...>
|
|
step s3b: BEGIN;
|
|
step s3txid: SELECT pg_current_xact_id() IS NULL;
|
|
?column?
|
|
|
|
f
|
|
step s2c: COMMIT;
|
|
step s2b: BEGIN;
|
|
step s2insert: INSERT INTO do_write DEFAULT VALUES;
|
|
step s2p: PREPARE TRANSACTION 'test1';
|
|
step s3c: COMMIT;
|
|
step s1init: <... completed>
|
|
?column?
|
|
|
|
init
|
|
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', 'two-phase-commit', '1');
|
|
data
|
|
|
|
BEGIN
|
|
table public.do_write: INSERT: id[integer]:2
|
|
COMMIT
|
|
step s2cp: COMMIT PREPARED 'test1';
|
|
step s1start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false', 'two-phase-commit', '1');
|
|
data
|
|
|
|
BEGIN
|
|
table public.do_write: INSERT: id[integer]:1
|
|
PREPARE TRANSACTION 'test1'
|
|
COMMIT PREPARED 'test1'
|
|
?column?
|
|
|
|
stop
|