diff --git a/src/backend/distributed/executor/multi_utility.c b/src/backend/distributed/executor/multi_utility.c index 2142b90db..9e994f42f 100644 --- a/src/backend/distributed/executor/multi_utility.c +++ b/src/backend/distributed/executor/multi_utility.c @@ -1419,11 +1419,9 @@ ErrorIfUnstableCreateOrAlterExtensionStmt(Node *parsetree) { /* * No version was specified, so PostgreSQL will use the default_version - * from the citus.control file. In case a new default is available, we - * will force a compatibility check of the latest available version. + * from the citus.control file. */ - citusVersionKnownCompatible = false; - CheckCitusVersion(ERROR); + CheckAvailableVersion(ERROR); } } diff --git a/src/backend/distributed/utils/metadata_cache.c b/src/backend/distributed/utils/metadata_cache.c index 128461a6a..12dad443c 100644 --- a/src/backend/distributed/utils/metadata_cache.c +++ b/src/backend/distributed/utils/metadata_cache.c @@ -106,7 +106,7 @@ static Oid workerHashFunctionId = InvalidOid; /* Citus extension version variables */ bool EnableVersionChecks = true; /* version checks are enabled */ -bool citusVersionKnownCompatible = false; +static bool citusVersionKnownCompatible = false; /* Hash table for informations about each partition */ static HTAB *DistTableCacheHash = NULL; @@ -143,7 +143,6 @@ static bool HasUniformHashDistribution(ShardInterval **shardIntervalArray, static bool HasUninitializedShardInterval(ShardInterval **sortedShardIntervalArray, int shardCount); static bool CheckInstalledVersion(int elevel); -static bool CheckAvailableVersion(int elevel); static char * AvailableExtensionVersion(void); static char * InstalledExtensionVersion(void); static bool HasOverlappingShardInterval(ShardInterval **shardIntervalArray, @@ -1181,13 +1180,15 @@ CheckCitusVersion(int elevel) * this function logs an error with the specified elevel and returns false, * otherwise it returns true. */ -static bool +bool CheckAvailableVersion(int elevel) { char *availableVersion = NULL; - Assert(CitusHasBeenLoaded()); - Assert(EnableVersionChecks); + if (!EnableVersionChecks) + { + return true; + } availableVersion = AvailableExtensionVersion(); diff --git a/src/include/distributed/metadata_cache.h b/src/include/distributed/metadata_cache.h index 14b0e86c6..48b03672e 100644 --- a/src/include/distributed/metadata_cache.h +++ b/src/include/distributed/metadata_cache.h @@ -18,7 +18,6 @@ #include "utils/hsearch.h" extern bool EnableVersionChecks; -extern bool citusVersionKnownCompatible; /* * Representation of a table's metadata that is frequently used for @@ -80,6 +79,7 @@ extern void CitusInvalidateRelcacheByShardId(int64 shardId); extern bool CitusHasBeenLoaded(void); extern bool CheckCitusVersion(int elevel); +extern bool CheckAvailableVersion(int elevel); bool MajorVersionsCompatible(char *leftVersion, char *rightVersion); /* access WorkerNodeHash */