From 214c674989431d858bd468c1e0f1c706edb63e5a Mon Sep 17 00:00:00 2001 From: Marco Slot Date: Fri, 25 Jun 2021 15:46:47 +0200 Subject: [PATCH] Fix PG upgrade scripts for 10.1 --- ...3--10.1-1.sql => citus--10.0-4--10.1-1.sql} | 0 .../udfs/citus_finish_pg_upgrade/10.1-1.sql | 18 +++++------------- .../udfs/citus_finish_pg_upgrade/latest.sql | 18 +++++------------- .../udfs/citus_prepare_pg_upgrade/10.1-1.sql | 10 ++++++++-- .../udfs/citus_prepare_pg_upgrade/latest.sql | 10 ++++++++-- 5 files changed, 26 insertions(+), 30 deletions(-) rename src/backend/distributed/sql/{citus--10.0-3--10.1-1.sql => citus--10.0-4--10.1-1.sql} (100%) diff --git a/src/backend/distributed/sql/citus--10.0-3--10.1-1.sql b/src/backend/distributed/sql/citus--10.0-4--10.1-1.sql similarity index 100% rename from src/backend/distributed/sql/citus--10.0-3--10.1-1.sql rename to src/backend/distributed/sql/citus--10.0-4--10.1-1.sql diff --git a/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/10.1-1.sql b/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/10.1-1.sql index fdc05f6df..5902b646f 100644 --- a/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/10.1-1.sql +++ b/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/10.1-1.sql @@ -85,17 +85,7 @@ BEGIN FROM pg_catalog.pg_dist_partition p; -- restore pg_dist_object from the stable identifiers - -- DELETE/INSERT to avoid primary key violations - WITH old_records AS ( - DELETE FROM - citus.pg_dist_object - RETURNING - type, - object_names, - object_args, - distribution_argument_index, - colocationid - ) + TRUNCATE citus.pg_dist_object; INSERT INTO citus.pg_dist_object (classid, objid, objsubid, distribution_argument_index, colocationid) SELECT address.classid, @@ -104,8 +94,10 @@ BEGIN naming.distribution_argument_index, naming.colocationid FROM - old_records naming, - pg_get_object_address(naming.type, naming.object_names, naming.object_args) address; + public.pg_dist_object naming, + pg_catalog.pg_get_object_address(naming.type, naming.object_names, naming.object_args) address; + + DROP TABLE public.pg_dist_object; END; $cppu$; diff --git a/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/latest.sql b/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/latest.sql index fdc05f6df..5902b646f 100644 --- a/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/latest.sql +++ b/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/latest.sql @@ -85,17 +85,7 @@ BEGIN FROM pg_catalog.pg_dist_partition p; -- restore pg_dist_object from the stable identifiers - -- DELETE/INSERT to avoid primary key violations - WITH old_records AS ( - DELETE FROM - citus.pg_dist_object - RETURNING - type, - object_names, - object_args, - distribution_argument_index, - colocationid - ) + TRUNCATE citus.pg_dist_object; INSERT INTO citus.pg_dist_object (classid, objid, objsubid, distribution_argument_index, colocationid) SELECT address.classid, @@ -104,8 +94,10 @@ BEGIN naming.distribution_argument_index, naming.colocationid FROM - old_records naming, - pg_get_object_address(naming.type, naming.object_names, naming.object_args) address; + public.pg_dist_object naming, + pg_catalog.pg_get_object_address(naming.type, naming.object_names, naming.object_args) address; + + DROP TABLE public.pg_dist_object; END; $cppu$; diff --git a/src/backend/distributed/sql/udfs/citus_prepare_pg_upgrade/10.1-1.sql b/src/backend/distributed/sql/udfs/citus_prepare_pg_upgrade/10.1-1.sql index 8b4ce1479..8643f3943 100644 --- a/src/backend/distributed/sql/udfs/citus_prepare_pg_upgrade/10.1-1.sql +++ b/src/backend/distributed/sql/udfs/citus_prepare_pg_upgrade/10.1-1.sql @@ -45,8 +45,14 @@ BEGIN FROM pg_catalog.pg_dist_rebalance_strategy; -- store upgrade stable identifiers on pg_dist_object catalog - UPDATE citus.pg_dist_object - SET (type, object_names, object_args) = (SELECT * FROM pg_identify_object_as_address(classid, objid, objsubid)); + CREATE TABLE public.pg_dist_object AS SELECT + address.type, + address.object_names, + address.object_args, + objects.distribution_argument_index, + objects.colocationid + FROM citus.pg_dist_object objects, + pg_catalog.pg_identify_object_as_address(objects.classid, objects.objid, objects.objsubid) address; END; $cppu$; diff --git a/src/backend/distributed/sql/udfs/citus_prepare_pg_upgrade/latest.sql b/src/backend/distributed/sql/udfs/citus_prepare_pg_upgrade/latest.sql index 8b4ce1479..8643f3943 100644 --- a/src/backend/distributed/sql/udfs/citus_prepare_pg_upgrade/latest.sql +++ b/src/backend/distributed/sql/udfs/citus_prepare_pg_upgrade/latest.sql @@ -45,8 +45,14 @@ BEGIN FROM pg_catalog.pg_dist_rebalance_strategy; -- store upgrade stable identifiers on pg_dist_object catalog - UPDATE citus.pg_dist_object - SET (type, object_names, object_args) = (SELECT * FROM pg_identify_object_as_address(classid, objid, objsubid)); + CREATE TABLE public.pg_dist_object AS SELECT + address.type, + address.object_names, + address.object_args, + objects.distribution_argument_index, + objects.colocationid + FROM citus.pg_dist_object objects, + pg_catalog.pg_identify_object_as_address(objects.classid, objects.objid, objects.objsubid) address; END; $cppu$;