diff --git a/src/backend/distributed/commands/truncate.c b/src/backend/distributed/commands/truncate.c index ab24b05e549..02ae982c1d1 100644 --- a/src/backend/distributed/commands/truncate.c +++ b/src/backend/distributed/commands/truncate.c @@ -267,9 +267,7 @@ ErrorIfUnsupportedTruncateStmt(TruncateStmt *truncateStatement) ErrorIfIllegallyChangingKnownShard(relationId); - char relationKind = get_rel_relkind(relationId); - if (IsCitusTable(relationId) && - relationKind == RELKIND_FOREIGN_TABLE) + if (IsCitusTable(relationId) && IsForeignTable(relationId)) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("truncating distributed foreign tables is " diff --git a/src/backend/distributed/metadata/metadata_sync.c b/src/backend/distributed/metadata/metadata_sync.c index 50d3c5181e0..cb7255424a3 100644 --- a/src/backend/distributed/metadata/metadata_sync.c +++ b/src/backend/distributed/metadata/metadata_sync.c @@ -686,8 +686,7 @@ MetadataCreateCommands(void) metadataSnapshotCommandList = lappend(metadataSnapshotCommandList, metadataCommand); - char relationKind = get_rel_relkind(relationId); - if (relationKind != RELKIND_FOREIGN_TABLE) + if (!IsForeignTable(relationId)) { /* add the truncate trigger command after the table became distributed */ char *truncateTriggerCreateCommand = @@ -848,8 +847,7 @@ GetDistributedTableDDLEvents(Oid relationId) commandList = lappend(commandList, metadataCommand); /* commands to create the truncate trigger of the table */ - char relationKind = get_rel_relkind(relationId); - if (relationKind != RELKIND_FOREIGN_TABLE) + if (!IsForeignTable(relationId)) { char *truncateTriggerCreateCommand = TruncateTriggerCreateCommand(relationId); commandList = lappend(commandList, truncateTriggerCreateCommand); diff --git a/src/backend/distributed/operations/node_protocol.c b/src/backend/distributed/operations/node_protocol.c index 9974fe56a51..f707dd3dc7b 100644 --- a/src/backend/distributed/operations/node_protocol.c +++ b/src/backend/distributed/operations/node_protocol.c @@ -574,9 +574,7 @@ GetPreLoadTableCreationCommands(Oid relationId, PushOverrideEmptySearchPath(CurrentMemoryContext); - /* if foreign table, fetch extension and server definitions */ - char tableType = get_rel_relkind(relationId); - if (tableType == RELKIND_FOREIGN_TABLE) + if (IsForeignTable(relationId)) { char *extensionDef = pg_get_extensiondef_string(relationId); char *serverDef = pg_get_serverdef_string(relationId); diff --git a/src/backend/distributed/operations/repair_shards.c b/src/backend/distributed/operations/repair_shards.c index 0d787d3cccb..bb818552a44 100644 --- a/src/backend/distributed/operations/repair_shards.c +++ b/src/backend/distributed/operations/repair_shards.c @@ -319,7 +319,6 @@ citus_move_shard_placement(PG_FUNCTION_ARGS) foreach(colocatedTableCell, colocatedTableList) { Oid colocatedTableId = lfirst_oid(colocatedTableCell); - char relationKind = '\0'; /* check that user has owner rights in all co-located tables */ EnsureTableOwner(colocatedTableId); @@ -332,8 +331,7 @@ citus_move_shard_placement(PG_FUNCTION_ARGS) */ LockRelationOid(colocatedTableId, ShareUpdateExclusiveLock); - relationKind = get_rel_relkind(colocatedTableId); - if (relationKind == RELKIND_FOREIGN_TABLE) + if (IsForeignTable(relationId)) { char *relationName = get_rel_name(colocatedTableId); ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), @@ -659,7 +657,6 @@ RepairShardPlacement(int64 shardId, const char *sourceNodeName, int32 sourceNode ShardInterval *shardInterval = LoadShardInterval(shardId); Oid distributedTableId = shardInterval->relationId; - char relationKind = get_rel_relkind(distributedTableId); char *tableOwner = TableOwner(shardInterval->relationId); /* prevent table from being dropped */ @@ -667,7 +664,7 @@ RepairShardPlacement(int64 shardId, const char *sourceNodeName, int32 sourceNode EnsureTableOwner(distributedTableId); - if (relationKind == RELKIND_FOREIGN_TABLE) + if (IsForeignTable(distributedTableId)) { char *relationName = get_rel_name(distributedTableId); ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), @@ -872,8 +869,7 @@ EnsureTableListSuitableForReplication(List *tableIdList) Oid tableId = InvalidOid; foreach_oid(tableId, tableIdList) { - char relationKind = get_rel_relkind(tableId); - if (relationKind == RELKIND_FOREIGN_TABLE) + if (IsForeignTable(tableId)) { char *relationName = get_rel_name(tableId); ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), @@ -1462,7 +1458,7 @@ RecreateTableDDLCommandList(Oid relationId) relationName); StringInfo dropCommand = makeStringInfo(); - char relationKind = get_rel_relkind(relationId); + IncludeSequenceDefaults includeSequenceDefaults = NO_SEQUENCE_DEFAULTS; /* build appropriate DROP command based on relation kind */ @@ -1471,7 +1467,7 @@ RecreateTableDDLCommandList(Oid relationId) appendStringInfo(dropCommand, DROP_REGULAR_TABLE_COMMAND, qualifiedRelationName); } - else if (relationKind == RELKIND_FOREIGN_TABLE) + else if (IsForeignTable(relationId)) { appendStringInfo(dropCommand, DROP_FOREIGN_TABLE_COMMAND, qualifiedRelationName); diff --git a/src/backend/distributed/operations/stage_protocol.c b/src/backend/distributed/operations/stage_protocol.c index 3cbccaf79d3..046fedf1979 100644 --- a/src/backend/distributed/operations/stage_protocol.c +++ b/src/backend/distributed/operations/stage_protocol.c @@ -105,7 +105,6 @@ master_create_empty_shard(PG_FUNCTION_ARGS) char storageType = SHARD_STORAGE_TABLE; Oid relationId = ResolveRelationId(relationNameText, false); - char relationKind = get_rel_relkind(relationId); EnsureTablePermissions(relationId, ACL_INSERT); CheckDistributedTable(relationId); @@ -127,7 +126,7 @@ master_create_empty_shard(PG_FUNCTION_ARGS) LockRelationOid(DistNodeRelationId(), RowShareLock); /* set the storage type of foreign tables to 'f' */ - if (relationKind == RELKIND_FOREIGN_TABLE) + if (IsForeignTable(relationId)) { storageType = SHARD_STORAGE_FOREIGN; }