From 7ad5773598b9b8b9e56dfda141fd1049674c4a08 Mon Sep 17 00:00:00 2001 From: Burak Velioglu Date: Fri, 28 Jan 2022 16:07:14 +0300 Subject: [PATCH] Use function to get table metadata list --- .../distributed/metadata/metadata_sync.c | 3 +-- .../distributed/metadata/node_metadata.c | 25 ++++++------------- src/include/distributed/metadata_sync.h | 1 + 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/backend/distributed/metadata/metadata_sync.c b/src/backend/distributed/metadata/metadata_sync.c index 73ae306cd..46f7cbc3a 100644 --- a/src/backend/distributed/metadata/metadata_sync.c +++ b/src/backend/distributed/metadata/metadata_sync.c @@ -83,7 +83,6 @@ char *EnableManualMetadataChangesForUser = ""; -static List * CitusTableMetadataCreateCommandList(Oid relationId); static void EnsureObjectMetadataIsSane(int distributionArgumentIndex, int colocationId); static char * SchemaOwnerName(Oid objectId); @@ -706,7 +705,7 @@ DistributedObjectMetadataSyncCommandList(void) * CitusTableMetadataCreateCommandList returns the set of commands necessary to * create the given distributed table metadata on a worker. */ -static List * +List * CitusTableMetadataCreateCommandList(Oid relationId) { CitusTableCacheEntry *cacheEntry = GetCitusTableCacheEntry(relationId); diff --git a/src/backend/distributed/metadata/node_metadata.c b/src/backend/distributed/metadata/node_metadata.c index 82b7e2840..cf4c1451b 100644 --- a/src/backend/distributed/metadata/node_metadata.c +++ b/src/backend/distributed/metadata/node_metadata.c @@ -660,29 +660,18 @@ PgDistTableMetadataSyncCommandList(void) /* create pg_dist_partition, pg_dist_shard and pg_dist_placement entries */ foreach_ptr(cacheEntry, propagatedTableList) { - Oid clusteredTableId = cacheEntry->relationId; - - /* add the table metadata command first */ - char *metadataCommand = DistributionCreateCommand(cacheEntry); - metadataSnapshotCommandList = lappend(metadataSnapshotCommandList, - metadataCommand); - - /* add the pg_dist_shard{,placement} entries */ - List *shardIntervalList = LoadShardIntervalList(clusteredTableId); - List *shardCreateCommandList = ShardListInsertCommand(shardIntervalList); + List *tableMetadataCreateCommandList = + CitusTableMetadataCreateCommandList(cacheEntry->relationId); metadataSnapshotCommandList = list_concat(metadataSnapshotCommandList, - shardCreateCommandList); + tableMetadataCreateCommandList); } /* As the last step, propagate the pg_dist_object entities */ - if (ShouldPropagate()) - { - List *distributedObjectSyncCommandList = - DistributedObjectMetadataSyncCommandList(); - metadataSnapshotCommandList = list_concat(metadataSnapshotCommandList, - distributedObjectSyncCommandList); - } + Assert(ShouldPropagate()); + List *distributedObjectSyncCommandList = DistributedObjectMetadataSyncCommandList(); + metadataSnapshotCommandList = list_concat(metadataSnapshotCommandList, + distributedObjectSyncCommandList); metadataSnapshotCommandList = lcons(DISABLE_DDL_PROPAGATION, metadataSnapshotCommandList); diff --git a/src/include/distributed/metadata_sync.h b/src/include/distributed/metadata_sync.h index 52d9fc4d5..2ea790cbf 100644 --- a/src/include/distributed/metadata_sync.h +++ b/src/include/distributed/metadata_sync.h @@ -38,6 +38,7 @@ extern bool ShouldSyncTableMetadata(Oid relationId); extern bool ShouldSyncTableMetadataViaCatalog(Oid relationId); extern List * NodeMetadataCreateCommands(void); extern List * DistributedObjectMetadataSyncCommandList(void); +extern List * CitusTableMetadataCreateCommandList(Oid relationId); extern List * NodeMetadataDropCommands(void); extern char * MarkObjectsDistributedCreateCommand(List *addresses, List *distributionArgumentIndexes,