Check extension owner once

velioglu/wo_seq_test_1
Burak Velioglu 2022-01-20 01:52:19 +03:00
parent 05b4711962
commit ea3063e6d2
No known key found for this signature in database
GPG Key ID: F6827E620F6549C6
3 changed files with 8 additions and 11 deletions

View File

@ -1885,9 +1885,7 @@ List *
InterTableRelationshipOfRelationCommandList(Oid relationId) InterTableRelationshipOfRelationCommandList(Oid relationId)
{ {
/* commands to create foreign key constraints */ /* commands to create foreign key constraints */
List *foreignConstraintCommands = List *commandList = GetReferencingForeignConstaintCommands(relationId);
GetReferencingForeignConstaintCommands(relationId);
List *commandList = list_concat(commandList, foreignConstraintCommands);
/* commands to create partitioning hierarchy */ /* commands to create partitioning hierarchy */
if (PartitionTable(relationId)) if (PartitionTable(relationId))

View File

@ -597,23 +597,21 @@ InterTableRelationshipCommandList()
CitusTableCacheEntry *cacheEntry = NULL; CitusTableCacheEntry *cacheEntry = NULL;
foreach_ptr(cacheEntry, distributedTableList) foreach_ptr(cacheEntry, distributedTableList)
{ {
if (ShouldSyncTableMetadata(cacheEntry->relationId)) /*
* Skip foreign key and partition creation when we shouldn't need to sync
* tablem metadata or the Citus table is owned by an extension.
*/
if (ShouldSyncTableMetadata(cacheEntry->relationId) &&
!IsTableOwnedByExtension(cacheEntry->relationId))
{ {
propagatedTableList = lappend(propagatedTableList, cacheEntry); propagatedTableList = lappend(propagatedTableList, cacheEntry);
} }
} }
/* construct the foreign key constraints after all tables are created */
foreach_ptr(cacheEntry, propagatedTableList) foreach_ptr(cacheEntry, propagatedTableList)
{ {
Oid relationId = cacheEntry->relationId; Oid relationId = cacheEntry->relationId;
if (IsTableOwnedByExtension(relationId))
{
/* skip foreign key creation when the Citus table is owned by an extension */
continue;
}
List *commandListForRelation = List *commandListForRelation =
InterTableRelationshipOfRelationCommandList(relationId); InterTableRelationshipOfRelationCommandList(relationId);

View File

@ -56,6 +56,7 @@ extern char * PlacementUpsertCommand(uint64 shardId, uint64 placementId, int sha
uint64 shardLength, int32 groupId); uint64 shardLength, int32 groupId);
extern char * TruncateTriggerCreateCommand(Oid relationId); extern char * TruncateTriggerCreateCommand(Oid relationId);
extern void CreateInterTableRelationshipOfRelationOnWorkers(Oid relationId); extern void CreateInterTableRelationshipOfRelationOnWorkers(Oid relationId);
extern List * InterTableRelationshipOfRelationCommandList(Oid relationId);
extern void CreateShellTableOnWorkers(Oid relationId); extern void CreateShellTableOnWorkers(Oid relationId);
extern void CreateTableMetadataOnWorkers(Oid relationId); extern void CreateTableMetadataOnWorkers(Oid relationId);
extern List * DetachPartitionCommandList(void); extern List * DetachPartitionCommandList(void);