diff --git a/src/backend/distributed/metadata/metadata_sync.c b/src/backend/distributed/metadata/metadata_sync.c index 29316d26b..b3c14c8ae 100644 --- a/src/backend/distributed/metadata/metadata_sync.c +++ b/src/backend/distributed/metadata/metadata_sync.c @@ -83,7 +83,6 @@ char *EnableManualMetadataChangesForUser = ""; -static void EnsureSequentialModeMetadataOperations(void); static List * CitusTableMetadataCreateCommandList(Oid relationId); static void EnsureObjectMetadataIsSane(int distributionArgumentIndex, int colocationId); @@ -276,7 +275,7 @@ SyncCitusTableMetadata(Oid relationId) * visible on all connections used by the transaction, meaning we can only use 1 * connection per node. */ -static void +void EnsureSequentialModeMetadataOperations(void) { if (!IsTransactionBlock()) diff --git a/src/backend/distributed/metadata/node_metadata.c b/src/backend/distributed/metadata/node_metadata.c index 127755411..0b09bc86f 100644 --- a/src/backend/distributed/metadata/node_metadata.c +++ b/src/backend/distributed/metadata/node_metadata.c @@ -798,6 +798,7 @@ SyncObjectDependenciesToNode(WorkerNode *workerNode) return; } + EnsureSequentialModeMetadataOperations(); Assert(ShouldPropagate()); List *commandList = SyncObjectDependenciesCommandList(workerNode); diff --git a/src/include/distributed/metadata_sync.h b/src/include/distributed/metadata_sync.h index 31e631790..77c85b791 100644 --- a/src/include/distributed/metadata_sync.h +++ b/src/include/distributed/metadata_sync.h @@ -31,6 +31,7 @@ typedef enum /* Functions declarations for metadata syncing */ extern void SyncNodeMetadataToNode(const char *nodeNameString, int32 nodePort); extern void SyncCitusTableMetadata(Oid relationId); +extern void EnsureSequentialModeMetadataOperations(void); extern bool ClusterHasKnownMetadataWorkers(void); extern char * LocalGroupIdUpdateCommand(int32 groupId); extern bool ShouldSyncTableMetadata(Oid relationId);