Use function to get table metadata list

velioglu/temp_two_pro
Burak Velioglu 2022-01-28 16:07:14 +03:00
parent 290a4737fc
commit 7ad5773598
No known key found for this signature in database
GPG Key ID: F6827E620F6549C6
3 changed files with 9 additions and 20 deletions

View File

@ -83,7 +83,6 @@
char *EnableManualMetadataChangesForUser = ""; char *EnableManualMetadataChangesForUser = "";
static List * CitusTableMetadataCreateCommandList(Oid relationId);
static void EnsureObjectMetadataIsSane(int distributionArgumentIndex, static void EnsureObjectMetadataIsSane(int distributionArgumentIndex,
int colocationId); int colocationId);
static char * SchemaOwnerName(Oid objectId); static char * SchemaOwnerName(Oid objectId);
@ -706,7 +705,7 @@ DistributedObjectMetadataSyncCommandList(void)
* CitusTableMetadataCreateCommandList returns the set of commands necessary to * CitusTableMetadataCreateCommandList returns the set of commands necessary to
* create the given distributed table metadata on a worker. * create the given distributed table metadata on a worker.
*/ */
static List * List *
CitusTableMetadataCreateCommandList(Oid relationId) CitusTableMetadataCreateCommandList(Oid relationId)
{ {
CitusTableCacheEntry *cacheEntry = GetCitusTableCacheEntry(relationId); CitusTableCacheEntry *cacheEntry = GetCitusTableCacheEntry(relationId);

View File

@ -660,29 +660,18 @@ PgDistTableMetadataSyncCommandList(void)
/* create pg_dist_partition, pg_dist_shard and pg_dist_placement entries */ /* create pg_dist_partition, pg_dist_shard and pg_dist_placement entries */
foreach_ptr(cacheEntry, propagatedTableList) foreach_ptr(cacheEntry, propagatedTableList)
{ {
Oid clusteredTableId = cacheEntry->relationId; List *tableMetadataCreateCommandList =
CitusTableMetadataCreateCommandList(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);
metadataSnapshotCommandList = list_concat(metadataSnapshotCommandList, metadataSnapshotCommandList = list_concat(metadataSnapshotCommandList,
shardCreateCommandList); tableMetadataCreateCommandList);
} }
/* As the last step, propagate the pg_dist_object entities */ /* As the last step, propagate the pg_dist_object entities */
if (ShouldPropagate()) Assert(ShouldPropagate());
{ List *distributedObjectSyncCommandList = DistributedObjectMetadataSyncCommandList();
List *distributedObjectSyncCommandList =
DistributedObjectMetadataSyncCommandList();
metadataSnapshotCommandList = list_concat(metadataSnapshotCommandList, metadataSnapshotCommandList = list_concat(metadataSnapshotCommandList,
distributedObjectSyncCommandList); distributedObjectSyncCommandList);
}
metadataSnapshotCommandList = lcons(DISABLE_DDL_PROPAGATION, metadataSnapshotCommandList = lcons(DISABLE_DDL_PROPAGATION,
metadataSnapshotCommandList); metadataSnapshotCommandList);

View File

@ -38,6 +38,7 @@ extern bool ShouldSyncTableMetadata(Oid relationId);
extern bool ShouldSyncTableMetadataViaCatalog(Oid relationId); extern bool ShouldSyncTableMetadataViaCatalog(Oid relationId);
extern List * NodeMetadataCreateCommands(void); extern List * NodeMetadataCreateCommands(void);
extern List * DistributedObjectMetadataSyncCommandList(void); extern List * DistributedObjectMetadataSyncCommandList(void);
extern List * CitusTableMetadataCreateCommandList(Oid relationId);
extern List * NodeMetadataDropCommands(void); extern List * NodeMetadataDropCommands(void);
extern char * MarkObjectsDistributedCreateCommand(List *addresses, extern char * MarkObjectsDistributedCreateCommand(List *addresses,
List *distributionArgumentIndexes, List *distributionArgumentIndexes,