From e8c4e2f9246fbe95826d8124fff9b613ea762d3c Mon Sep 17 00:00:00 2001 From: Vigneshwaran C Date: Thu, 26 May 2022 19:29:33 +0530 Subject: [PATCH v25 1/4] 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 | 55 +++++++++++++++++++ contrib/test_decoding/sql/replorigin.sql | 15 +++++ 2 files changed, 70 insertions(+) diff --git a/contrib/test_decoding/expected/replorigin.out b/contrib/test_decoding/expected/replorigin.out index 2e9ef7c823..56da7de79a 100644 --- a/contrib/test_decoding/expected/replorigin.out +++ b/contrib/test_decoding/expected/replorigin.out @@ -257,3 +257,58 @@ SELECT pg_replication_origin_drop('regress_test_decoding: regression_slot_no_lsn (1 row) +-- Verify the behaviour of the only-local parameter +SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot_only_local', 'test_decoding'); + ?column? +---------- + init +(1 row) + +SELECT pg_replication_origin_create('regress_test_decoding: regression_slot_only_local'); + pg_replication_origin_create +------------------------------ + 1 +(1 row) + +SELECT pg_replication_origin_session_setup('regress_test_decoding: regression_slot_only_local'); + pg_replication_origin_session_setup +------------------------------------- + +(1 row) + +INSERT INTO origin_tbl(data) VALUES ('only_local, commit1'); +-- Remote origin data returned when only-local parameter is not set +SELECT data FROM pg_logical_slot_get_changes('regression_slot_only_local', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0', 'only-local', '0'); + data +--------------------------------------------------------------------------------- + BEGIN + table public.origin_tbl: INSERT: id[integer]:8 data[text]:'only_local, commit1' + COMMIT +(3 rows) + +INSERT INTO origin_tbl(data) VALUES ('only_local, commit2'); +-- Remote origin data not returned when only-local parameter is set +SELECT data FROM pg_logical_slot_get_changes('regression_slot_only_local', 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_only_local'); + pg_drop_replication_slot +-------------------------- + +(1 row) + +SELECT pg_replication_origin_drop('regress_test_decoding: regression_slot_only_local'); + pg_replication_origin_drop +---------------------------- + +(1 row) + diff --git a/contrib/test_decoding/sql/replorigin.sql b/contrib/test_decoding/sql/replorigin.sql index 2e28a48777..4b79c919bb 100644 --- a/contrib/test_decoding/sql/replorigin.sql +++ b/contrib/test_decoding/sql/replorigin.sql @@ -119,3 +119,18 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot_no_lsn', NULL, NUL SELECT pg_replication_origin_session_reset(); SELECT pg_drop_replication_slot('regression_slot_no_lsn'); SELECT pg_replication_origin_drop('regress_test_decoding: regression_slot_no_lsn'); + +-- Verify the behaviour of the only-local parameter +SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot_only_local', 'test_decoding'); +SELECT pg_replication_origin_create('regress_test_decoding: regression_slot_only_local'); +SELECT pg_replication_origin_session_setup('regress_test_decoding: regression_slot_only_local'); +INSERT INTO origin_tbl(data) VALUES ('only_local, commit1'); +-- Remote origin data returned when only-local parameter is not set +SELECT data FROM pg_logical_slot_get_changes('regression_slot_only_local', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0', 'only-local', '0'); +INSERT INTO origin_tbl(data) VALUES ('only_local, commit2'); +-- Remote origin data not returned when only-local parameter is set +SELECT data FROM pg_logical_slot_get_changes('regression_slot_only_local', 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_only_local'); +SELECT pg_replication_origin_drop('regress_test_decoding: regression_slot_only_local'); -- 2.32.0