Skip to content

Commit

Permalink
Use IsForeignTable all places
Browse files Browse the repository at this point in the history
  • Loading branch information
agedemenli committed Dec 24, 2021
1 parent d44ac14 commit 8156ec6
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 21 deletions.
4 changes: 1 addition & 3 deletions src/backend/distributed/commands/truncate.c
Expand Up @@ -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 "
Expand Down
6 changes: 2 additions & 4 deletions src/backend/distributed/metadata/metadata_sync.c
Expand Up @@ -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 =
Expand Down Expand Up @@ -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);
Expand Down
4 changes: 1 addition & 3 deletions src/backend/distributed/operations/node_protocol.c
Expand Up @@ -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);
Expand Down
14 changes: 5 additions & 9 deletions src/backend/distributed/operations/repair_shards.c
Expand Up @@ -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);
Expand All @@ -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),
Expand Down Expand Up @@ -659,15 +657,14 @@ 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 */
LockRelationOid(distributedTableId, AccessShareLock);

EnsureTableOwner(distributedTableId);

if (relationKind == RELKIND_FOREIGN_TABLE)
if (IsForeignTable(distributedTableId))
{
char *relationName = get_rel_name(distributedTableId);
ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
Expand Down Expand Up @@ -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),
Expand Down Expand Up @@ -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 */
Expand All @@ -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);
Expand Down
3 changes: 1 addition & 2 deletions src/backend/distributed/operations/stage_protocol.c
Expand Up @@ -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);
Expand All @@ -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;
}
Expand Down

0 comments on commit 8156ec6

Please sign in to comment.