From 3d9cec70fd17bfce045ac0e6f70d205a42371287 Mon Sep 17 00:00:00 2001 From: Hanefi Onaldi Date: Thu, 11 Nov 2021 13:55:28 +0300 Subject: [PATCH] Update migration paths from 10.2 to 11.0 (#5459) We recently introduced a set of patches to 10.2, and introduced 10.2-4 migration version. This migration version only resides on `release-10.2` branch, and is missing on our default branch. This creates a problem because we do not have a valid migration path from 10.2 to latest 11.0. To remedy this issue, I copied the relevant migration files from `release-10.2` branch, and renamed some of our migration files on default branch to make sure we have a linear upgrade path. --- .../distributed/sql/citus--10.2-3--10.2-4.sql | 7 +++++ ...--11.0-1.sql => citus--10.2-4--11.0-1.sql} | 6 +--- .../sql/downgrades/citus--10.2-4--10.2-3.sql | 5 ++++ ...--10.2-3.sql => citus--11.0-1--10.2-4.sql} | 6 +--- .../{11.0-1.sql => 10.2-4.sql} | 0 .../{11.0-1.sql => 10.2-4.sql} | 0 .../{11.0-1.sql => 10.2-4.sql} | 0 src/test/regress/expected/multi_extension.out | 30 ++++++++++++++----- src/test/regress/sql/multi_extension.sql | 14 +++++++-- 9 files changed, 49 insertions(+), 19 deletions(-) create mode 100644 src/backend/distributed/sql/citus--10.2-3--10.2-4.sql rename src/backend/distributed/sql/{citus--10.2-3--11.0-1.sql => citus--10.2-4--11.0-1.sql} (76%) create mode 100644 src/backend/distributed/sql/downgrades/citus--10.2-4--10.2-3.sql rename src/backend/distributed/sql/downgrades/{citus--11.0-1--10.2-3.sql => citus--11.0-1--10.2-4.sql} (86%) rename src/backend/distributed/sql/udfs/fix_all_partition_shard_index_names/{11.0-1.sql => 10.2-4.sql} (100%) rename src/backend/distributed/sql/udfs/fix_partition_shard_index_names/{11.0-1.sql => 10.2-4.sql} (100%) rename src/backend/distributed/sql/udfs/worker_fix_partition_shard_index_names/{11.0-1.sql => 10.2-4.sql} (100%) diff --git a/src/backend/distributed/sql/citus--10.2-3--10.2-4.sql b/src/backend/distributed/sql/citus--10.2-3--10.2-4.sql new file mode 100644 index 000000000..762934edb --- /dev/null +++ b/src/backend/distributed/sql/citus--10.2-3--10.2-4.sql @@ -0,0 +1,7 @@ +-- citus--10.2-3--10.2-4 + +-- bump version to 10.2-4 + +#include "udfs/fix_partition_shard_index_names/10.2-4.sql" +#include "udfs/fix_all_partition_shard_index_names/10.2-4.sql" +#include "udfs/worker_fix_partition_shard_index_names/10.2-4.sql" diff --git a/src/backend/distributed/sql/citus--10.2-3--11.0-1.sql b/src/backend/distributed/sql/citus--10.2-4--11.0-1.sql similarity index 76% rename from src/backend/distributed/sql/citus--10.2-3--11.0-1.sql rename to src/backend/distributed/sql/citus--10.2-4--11.0-1.sql index 2fdcce9bd..0019aeb2c 100644 --- a/src/backend/distributed/sql/citus--10.2-3--11.0-1.sql +++ b/src/backend/distributed/sql/citus--10.2-4--11.0-1.sql @@ -1,11 +1,7 @@ --- citus--10.2-3--11.0-1 +-- citus--10.2-4--11.0-1 -- bump version to 11.0-1 -#include "udfs/fix_partition_shard_index_names/11.0-1.sql" -#include "udfs/fix_all_partition_shard_index_names/11.0-1.sql" -#include "udfs/worker_fix_partition_shard_index_names/11.0-1.sql" - DROP FUNCTION IF EXISTS pg_catalog.master_apply_delete_command(text); DROP FUNCTION pg_catalog.master_get_table_metadata(text); DROP FUNCTION pg_catalog.master_append_table_to_shard(bigint, text, text, integer); diff --git a/src/backend/distributed/sql/downgrades/citus--10.2-4--10.2-3.sql b/src/backend/distributed/sql/downgrades/citus--10.2-4--10.2-3.sql new file mode 100644 index 000000000..6280755bf --- /dev/null +++ b/src/backend/distributed/sql/downgrades/citus--10.2-4--10.2-3.sql @@ -0,0 +1,5 @@ +-- citus--10.2-4--10.2-3 + +DROP FUNCTION pg_catalog.fix_all_partition_shard_index_names(); +DROP FUNCTION pg_catalog.fix_partition_shard_index_names(regclass); +DROP FUNCTION pg_catalog.worker_fix_partition_shard_index_names(regclass, text, text); diff --git a/src/backend/distributed/sql/downgrades/citus--11.0-1--10.2-3.sql b/src/backend/distributed/sql/downgrades/citus--11.0-1--10.2-4.sql similarity index 86% rename from src/backend/distributed/sql/downgrades/citus--11.0-1--10.2-3.sql rename to src/backend/distributed/sql/downgrades/citus--11.0-1--10.2-4.sql index 8345be6d8..712053ece 100644 --- a/src/backend/distributed/sql/downgrades/citus--11.0-1--10.2-3.sql +++ b/src/backend/distributed/sql/downgrades/citus--11.0-1--10.2-4.sql @@ -1,8 +1,4 @@ --- citus--11.0-1--10.2-3 - -DROP FUNCTION pg_catalog.fix_all_partition_shard_index_names(); -DROP FUNCTION pg_catalog.fix_partition_shard_index_names(regclass); -DROP FUNCTION pg_catalog.worker_fix_partition_shard_index_names(regclass, text, text); +-- citus--11.0-1--10.2-4 CREATE FUNCTION pg_catalog.master_apply_delete_command(text) RETURNS integer diff --git a/src/backend/distributed/sql/udfs/fix_all_partition_shard_index_names/11.0-1.sql b/src/backend/distributed/sql/udfs/fix_all_partition_shard_index_names/10.2-4.sql similarity index 100% rename from src/backend/distributed/sql/udfs/fix_all_partition_shard_index_names/11.0-1.sql rename to src/backend/distributed/sql/udfs/fix_all_partition_shard_index_names/10.2-4.sql diff --git a/src/backend/distributed/sql/udfs/fix_partition_shard_index_names/11.0-1.sql b/src/backend/distributed/sql/udfs/fix_partition_shard_index_names/10.2-4.sql similarity index 100% rename from src/backend/distributed/sql/udfs/fix_partition_shard_index_names/11.0-1.sql rename to src/backend/distributed/sql/udfs/fix_partition_shard_index_names/10.2-4.sql diff --git a/src/backend/distributed/sql/udfs/worker_fix_partition_shard_index_names/11.0-1.sql b/src/backend/distributed/sql/udfs/worker_fix_partition_shard_index_names/10.2-4.sql similarity index 100% rename from src/backend/distributed/sql/udfs/worker_fix_partition_shard_index_names/11.0-1.sql rename to src/backend/distributed/sql/udfs/worker_fix_partition_shard_index_names/10.2-4.sql diff --git a/src/test/regress/expected/multi_extension.out b/src/test/regress/expected/multi_extension.out index d30921d01..a0d5b08db 100644 --- a/src/test/regress/expected/multi_extension.out +++ b/src/test/regress/expected/multi_extension.out @@ -880,8 +880,8 @@ SELECT * FROM multi_extension.print_extension_changes(); --------------------------------------------------------------------- (0 rows) --- Test downgrade to 10.2-3 from 11.0-1 -ALTER EXTENSION citus UPDATE TO '11.0-1'; +-- Test downgrade to 10.2-3 from 10.2-4 +ALTER EXTENSION citus UPDATE TO '10.2-4'; ALTER EXTENSION citus UPDATE TO '10.2-3'; -- Should be empty result since upgrade+downgrade should be a no-op SELECT * FROM multi_extension.print_extension_changes(); @@ -889,18 +889,34 @@ SELECT * FROM multi_extension.print_extension_changes(); --------------------------------------------------------------------- (0 rows) +-- Snapshot of state at 10.2-4 +ALTER EXTENSION citus UPDATE TO '10.2-4'; +SELECT * FROM multi_extension.print_extension_changes(); + previous_object | current_object +--------------------------------------------------------------------- + | function fix_all_partition_shard_index_names() SETOF regclass + | function fix_partition_shard_index_names(regclass) void + | function worker_fix_partition_shard_index_names(regclass,text,text) void +(3 rows) + +-- Test downgrade to 10.2-4 from 11.0-1 +ALTER EXTENSION citus UPDATE TO '11.0-1'; +ALTER EXTENSION citus UPDATE TO '10.2-4'; +-- Should be empty result since upgrade+downgrade should be a no-op +SELECT * FROM multi_extension.print_extension_changes(); + previous_object | current_object +--------------------------------------------------------------------- +(0 rows) + -- Snapshot of state at 11.0-1 ALTER EXTENSION citus UPDATE TO '11.0-1'; SELECT * FROM multi_extension.print_extension_changes(); - previous_object | current_object + previous_object | current_object --------------------------------------------------------------------- function master_append_table_to_shard(bigint,text,text,integer) real | function master_apply_delete_command(text) integer | function master_get_table_metadata(text) record | - | function fix_all_partition_shard_index_names() SETOF regclass - | function fix_partition_shard_index_names(regclass) void - | function worker_fix_partition_shard_index_names(regclass,text,text) void -(6 rows) +(3 rows) DROP TABLE multi_extension.prev_objects, multi_extension.extension_diff; -- show running version diff --git a/src/test/regress/sql/multi_extension.sql b/src/test/regress/sql/multi_extension.sql index 107184014..8f0f06b85 100644 --- a/src/test/regress/sql/multi_extension.sql +++ b/src/test/regress/sql/multi_extension.sql @@ -366,12 +366,22 @@ SELECT * FROM multi_extension.print_extension_changes(); ALTER EXTENSION citus UPDATE TO '10.2-3'; SELECT * FROM multi_extension.print_extension_changes(); --- Test downgrade to 10.2-3 from 11.0-1 -ALTER EXTENSION citus UPDATE TO '11.0-1'; +-- Test downgrade to 10.2-3 from 10.2-4 +ALTER EXTENSION citus UPDATE TO '10.2-4'; ALTER EXTENSION citus UPDATE TO '10.2-3'; -- Should be empty result since upgrade+downgrade should be a no-op SELECT * FROM multi_extension.print_extension_changes(); +-- Snapshot of state at 10.2-4 +ALTER EXTENSION citus UPDATE TO '10.2-4'; +SELECT * FROM multi_extension.print_extension_changes(); + +-- Test downgrade to 10.2-4 from 11.0-1 +ALTER EXTENSION citus UPDATE TO '11.0-1'; +ALTER EXTENSION citus UPDATE TO '10.2-4'; +-- Should be empty result since upgrade+downgrade should be a no-op +SELECT * FROM multi_extension.print_extension_changes(); + -- Snapshot of state at 11.0-1 ALTER EXTENSION citus UPDATE TO '11.0-1'; SELECT * FROM multi_extension.print_extension_changes();