From 375a1adc9ef41ba73160bbc467d3c68e25a9cce8 Mon Sep 17 00:00:00 2001 From: Sait Talha Nisanci Date: Fri, 20 Aug 2021 09:16:44 +0300 Subject: [PATCH] Check if extversion is the same for seg extension When we check the exact version of the seg extension, it becomes a problem when its version changes, such as from 1.3 to 1.4. So now we modified the changes to check for that the version is the same in all the cluster. --- .../expected/propagate_extension_commands.out | 26 ++++++++++--------- .../sql/propagate_extension_commands.sql | 9 ++++--- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/test/regress/expected/propagate_extension_commands.out b/src/test/regress/expected/propagate_extension_commands.out index 969a52b97..b7e0618e3 100644 --- a/src/test/regress/expected/propagate_extension_commands.out +++ b/src/test/regress/expected/propagate_extension_commands.out @@ -161,10 +161,11 @@ SELECT run_command_on_workers($$SELECT count(extnamespace) FROM pg_extension WHE (localhost,57637,t,1) (1 row) -SELECT run_command_on_workers($$SELECT extversion FROM pg_extension WHERE extname = 'seg'$$); - run_command_on_workers +SELECT workers.result = pg_extension.extversion AS same_version + FROM run_command_on_workers($$SELECT extversion FROM pg_extension WHERE extname = 'seg'$$) workers, pg_extension WHERE extname = 'seg'; + same_version --------------------------------------------------------------------- - (localhost,57637,t,1.3) + t (1 row) -- now create the reference table @@ -254,11 +255,12 @@ SELECT run_command_on_workers($$SELECT count(extnamespace) FROM pg_extension WHE (localhost,57638,t,1) (2 rows) -SELECT run_command_on_workers($$SELECT extversion FROM pg_extension WHERE extname = 'seg'$$); - run_command_on_workers +SELECT workers.result = pg_extension.extversion AS same_version + FROM run_command_on_workers($$SELECT extversion FROM pg_extension WHERE extname = 'seg'$$) workers, pg_extension WHERE extname = 'seg'; + same_version --------------------------------------------------------------------- - (localhost,57637,t,1.3) - (localhost,57638,t,1.3) + t + t (2 rows) -- check for the unpackaged extension to be created correctly @@ -376,12 +378,12 @@ BEGIN; ROLLBACK; -- show that the CREATE EXTENSION command propagated even if the transaction -- block is rollbacked, that's a shortcoming of dependency creation logic -SELECT run_command_on_workers($$SELECT extversion FROM pg_extension WHERE extname = 'seg'$$); - run_command_on_workers +SELECT COUNT(DISTINCT workers.result) + FROM run_command_on_workers($$SELECT extversion FROM pg_extension WHERE extname = 'seg'$$) workers; + count --------------------------------------------------------------------- - (localhost,57637,t,1.3) - (localhost,57638,t,1.3) -(2 rows) + 1 +(1 row) -- drop the schema and all the objects DROP SCHEMA "extension'test" CASCADE; diff --git a/src/test/regress/sql/propagate_extension_commands.sql b/src/test/regress/sql/propagate_extension_commands.sql index ad7ba749b..0ba17e293 100644 --- a/src/test/regress/sql/propagate_extension_commands.sql +++ b/src/test/regress/sql/propagate_extension_commands.sql @@ -98,7 +98,8 @@ CREATE EXTENSION seg; -- show that the extension is created on existing worker SELECT run_command_on_workers($$SELECT count(extnamespace) FROM pg_extension WHERE extname = 'seg'$$); -SELECT run_command_on_workers($$SELECT extversion FROM pg_extension WHERE extname = 'seg'$$); +SELECT workers.result = pg_extension.extversion AS same_version + FROM run_command_on_workers($$SELECT extversion FROM pg_extension WHERE extname = 'seg'$$) workers, pg_extension WHERE extname = 'seg'; -- now create the reference table CREATE TABLE ref_table_2 (x seg); @@ -144,7 +145,8 @@ SELECT 1 from master_add_node('localhost', :worker_2_port); -- show that the extension is created on both existing and new node SELECT run_command_on_workers($$SELECT count(extnamespace) FROM pg_extension WHERE extname = 'seg'$$); -SELECT run_command_on_workers($$SELECT extversion FROM pg_extension WHERE extname = 'seg'$$); +SELECT workers.result = pg_extension.extversion AS same_version + FROM run_command_on_workers($$SELECT extversion FROM pg_extension WHERE extname = 'seg'$$) workers, pg_extension WHERE extname = 'seg'; -- check for the unpackaged extension to be created correctly SELECT run_command_on_workers($$SELECT count(extnamespace) FROM pg_extension WHERE extname = 'dict_int'$$); @@ -210,7 +212,8 @@ ROLLBACK; -- show that the CREATE EXTENSION command propagated even if the transaction -- block is rollbacked, that's a shortcoming of dependency creation logic -SELECT run_command_on_workers($$SELECT extversion FROM pg_extension WHERE extname = 'seg'$$); +SELECT COUNT(DISTINCT workers.result) + FROM run_command_on_workers($$SELECT extversion FROM pg_extension WHERE extname = 'seg'$$) workers; -- drop the schema and all the objects DROP SCHEMA "extension'test" CASCADE;