From cde7e367d411956d0b917492b1b521f948649649 Mon Sep 17 00:00:00 2001 From: Vigneshwaran C Date: Thu, 26 May 2022 19:29:33 +0530 Subject: [PATCH v28] Add a missing test to verify only-local parameter in test_decoding plugin. Add a missing test to verify only-local parameter in test_decoding plugin. --- contrib/test_decoding/expected/replorigin.out | 41 +++++++++++++++++-- contrib/test_decoding/sql/replorigin.sql | 13 +++++- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/contrib/test_decoding/expected/replorigin.out b/contrib/test_decoding/expected/replorigin.out index 2e9ef7c823..7ff2784a70 100644 --- a/contrib/test_decoding/expected/replorigin.out +++ b/contrib/test_decoding/expected/replorigin.out @@ -169,13 +169,48 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc COMMIT (3 rows) +-- Clean up +SELECT pg_replication_origin_drop('regress_test_decoding: regression_slot'); + pg_replication_origin_drop +---------------------------- + +(1 row) + +-- Ensure that the remote origin data is filtered when only-local parameter is +-- set. +SELECT pg_replication_origin_create('regress_test_decoding: remote_origin'); + pg_replication_origin_create +------------------------------ + 1 +(1 row) + +SELECT pg_replication_origin_session_setup('regress_test_decoding: remote_origin'); + pg_replication_origin_session_setup +------------------------------------- + +(1 row) + +INSERT INTO origin_tbl(data) VALUES ('only_local, commit_remote_origin'); +-- Remote origin data not returned when only-local parameter is set +SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0', 'only-local', '1'); + data +------ +(0 rows) + +-- Clean up +SELECT pg_replication_origin_session_reset(); + pg_replication_origin_session_reset +------------------------------------- + +(1 row) + SELECT pg_drop_replication_slot('regression_slot'); pg_drop_replication_slot -------------------------- (1 row) -SELECT pg_replication_origin_drop('regress_test_decoding: regression_slot'); +SELECT pg_replication_origin_drop('regress_test_decoding: remote_origin'); pg_replication_origin_drop ---------------------------- @@ -231,10 +266,10 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot_no_lsn', NULL, NUL data ------------------------------------------------------------------------------------- BEGIN - table public.origin_tbl: INSERT: id[integer]:4 data[text]:'no_lsn, commit' + table public.origin_tbl: INSERT: id[integer]:5 data[text]:'no_lsn, commit' COMMIT BEGIN - table public.origin_tbl: INSERT: id[integer]:6 data[text]:'no_lsn, commit prepared' + table public.origin_tbl: INSERT: id[integer]:7 data[text]:'no_lsn, commit prepared' COMMIT (6 rows) diff --git a/contrib/test_decoding/sql/replorigin.sql b/contrib/test_decoding/sql/replorigin.sql index 2e28a48777..4e34aff3b5 100644 --- a/contrib/test_decoding/sql/replorigin.sql +++ b/contrib/test_decoding/sql/replorigin.sql @@ -84,9 +84,20 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc --but new original changes still show up INSERT INTO origin_tbl(data) VALUES ('will be replicated'); SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'only-local', '1'); +-- Clean up +SELECT pg_replication_origin_drop('regress_test_decoding: regression_slot'); +-- Ensure that the remote origin data is filtered when only-local parameter is +-- set. +SELECT pg_replication_origin_create('regress_test_decoding: remote_origin'); +SELECT pg_replication_origin_session_setup('regress_test_decoding: remote_origin'); +INSERT INTO origin_tbl(data) VALUES ('only_local, commit_remote_origin'); +-- Remote origin data not returned when only-local parameter is set +SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0', 'only-local', '1'); +-- Clean up +SELECT pg_replication_origin_session_reset(); SELECT pg_drop_replication_slot('regression_slot'); -SELECT pg_replication_origin_drop('regress_test_decoding: regression_slot'); +SELECT pg_replication_origin_drop('regress_test_decoding: remote_origin'); -- Set of transactions with no origin LSNs and commit timestamps set for -- this session. -- 2.32.0