diff --git a/src/backend/distributed/commands/create_distributed_table.c b/src/backend/distributed/commands/create_distributed_table.c index e4acfaccb..da58e6182 100644 --- a/src/backend/distributed/commands/create_distributed_table.c +++ b/src/backend/distributed/commands/create_distributed_table.c @@ -532,19 +532,20 @@ CreateDistributedTable(Oid relationId, Var *distributionColumn, char distributio CreateReferenceTableShard(relationId); } + CreateShellTableOnWorkers(relationId); if (ShouldSyncTableMetadata(relationId)) { - CreateShellTableOnWorkers(relationId); - - /* TODO: Consider partitioned tables */ - // TODO: Should we really check? or don't allow - if (EnableDependencyCreation) - { - MarkObjectDistributed(&tableAddress); - } - + MarkObjectDistributed(&tableAddress); CreateTableMetadataOnWorkers(relationId); } + else + { + // Mark the table as distributed only locally + bool prevDependencyCreationValue = EnableDependencyCreation; + SetLocalEnableDependencyCreation(false); + MarkObjectDistributed(&tableAddress); + SetLocalEnableDependencyCreation(prevDependencyCreationValue); + } /* * We've a custom way of foreign key graph invalidation,