From cb3d2df90e240680438cb612edcd1598579f4d5c Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Mon, 1 Sep 2014 13:42:43 +0200 Subject: Add skip-empty-xacts option to test_decoding for use in the regression tests. The regression tests for contrib/test_decoding regularly failed on postgres instances that were very slow. Either because the hardware itself was slow or because very expensive debugging options like CLOBBER_CACHE_ALWAYS were used. The reason they failed was just that some additional transactions were decoded. Analyze and vacuum, triggered by autovac. To fix just add a option to test_decoding to only display transactions in which a change was actually displayed. That's not pretty because it removes information from the tests; but better than constantly failing tests in very likely harmless ways. Backpatch to 9.4 where logical decoding was introduced. Discussion: 20140629142511.GA26930@awork2.anarazel.de --- contrib/test_decoding/sql/permissions.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'contrib/test_decoding/sql/permissions.sql') diff --git a/contrib/test_decoding/sql/permissions.sql b/contrib/test_decoding/sql/permissions.sql index 39d70b56b00..8680c55771d 100644 --- a/contrib/test_decoding/sql/permissions.sql +++ b/contrib/test_decoding/sql/permissions.sql @@ -11,7 +11,7 @@ CREATE TABLE lr_test(data text); SET ROLE lr_superuser; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); INSERT INTO lr_test VALUES('lr_superuser_init'); -SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0'); +SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); SELECT pg_drop_replication_slot('regression_slot'); RESET ROLE; @@ -19,7 +19,7 @@ RESET ROLE; SET ROLE lr_replication; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); INSERT INTO lr_test VALUES('lr_superuser_init'); -SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0'); +SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); SELECT pg_drop_replication_slot('regression_slot'); RESET ROLE; @@ -27,7 +27,7 @@ RESET ROLE; SET ROLE lr_normal; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); INSERT INTO lr_test VALUES('lr_superuser_init'); -SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0'); +SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); SELECT pg_drop_replication_slot('regression_slot'); RESET ROLE; -- cgit v1.2.3