diff --git a/src/backend/distributed/shared_library_init.c b/src/backend/distributed/shared_library_init.c index 8d8a9b125..7e1ffa904 100644 --- a/src/backend/distributed/shared_library_init.c +++ b/src/backend/distributed/shared_library_init.c @@ -157,6 +157,13 @@ _PG_init(void) /* initialize transaction callbacks */ RegisterRouterExecutorXactCallbacks(); RegisterShardPlacementXactCallbacks(); + + /* enable modification of pg_catalog tables during pg_upgrade */ + if (IsBinaryUpgrade) + { + SetConfigOption("allow_system_table_mods", "true", PGC_POSTMASTER, + PGC_S_OVERRIDE); + } } diff --git a/src/backend/distributed/utils/metadata_cache.c b/src/backend/distributed/utils/metadata_cache.c index 1abf588fd..b48c62fa8 100644 --- a/src/backend/distributed/utils/metadata_cache.c +++ b/src/backend/distributed/utils/metadata_cache.c @@ -642,7 +642,8 @@ CitusHasBeenLoaded(void) } } - extensionLoaded = extensionPresent && extensionScriptExecuted; + /* we disable extension features during pg_upgrade */ + extensionLoaded = extensionPresent && extensionScriptExecuted && !IsBinaryUpgrade; if (extensionLoaded) { @@ -653,6 +654,9 @@ CitusHasBeenLoaded(void) * * Ensure InvalidateDistRelationCacheCallback will notice those changes * by caching pg_dist_partition's oid. + * + * We skip these checks during upgrade since pg_dist_partition is not + * present during early stages of upgrade operation. */ DistPartitionRelationId(); }