From 8faaaee6a5c5731cf951ef16748f16b9547cc6a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20Dub=C3=A9?= Date: Thu, 11 Jun 2020 15:35:02 +0000 Subject: [PATCH] IsReferenceTable, ShardIntervalCount: remove misleading isCitusTable check GetCitusTableCacheEntry raises an error if relationId is not distributed --- .../distributed/master/master_metadata_utility.c | 11 ++--------- .../distributed/planner/multi_logical_planner.c | 3 ++- src/backend/distributed/utils/reference_table_utils.c | 5 ----- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/src/backend/distributed/master/master_metadata_utility.c b/src/backend/distributed/master/master_metadata_utility.c index 770d8997f..528d96e7e 100644 --- a/src/backend/distributed/master/master_metadata_utility.c +++ b/src/backend/distributed/master/master_metadata_utility.c @@ -489,21 +489,14 @@ LoadShardIntervalList(Oid relationId) /* * ShardIntervalCount returns number of shard intervals for a given distributed table. - * The function returns 0 if table is not distributed, or no shards can be found for - * the given relation id. + * The function returns 0 if no shards can be found for the given relation id. */ int ShardIntervalCount(Oid relationId) { CitusTableCacheEntry *cacheEntry = GetCitusTableCacheEntry(relationId); - int shardIntervalCount = 0; - if (cacheEntry->isCitusTable) - { - shardIntervalCount = cacheEntry->shardIntervalArrayLength; - } - - return shardIntervalCount; + return cacheEntry->shardIntervalArrayLength; } diff --git a/src/backend/distributed/planner/multi_logical_planner.c b/src/backend/distributed/planner/multi_logical_planner.c index 9eaa3e522..b6de5b569 100644 --- a/src/backend/distributed/planner/multi_logical_planner.c +++ b/src/backend/distributed/planner/multi_logical_planner.c @@ -29,6 +29,7 @@ #include "distributed/multi_logical_optimizer.h" #include "distributed/multi_logical_planner.h" #include "distributed/multi_physical_planner.h" +#include "distributed/reference_table_utils.h" #include "distributed/relation_restriction_equivalence.h" #include "distributed/query_pushdown_planning.h" #include "distributed/query_utils.h" @@ -466,7 +467,7 @@ IsReferenceTableRTE(Node *node) { Oid relationId = NodeTryGetRteRelid(node); return relationId != InvalidOid && IsCitusTable(relationId) && - PartitionMethod(relationId) == DISTRIBUTE_BY_NONE; + IsReferenceTable(relationId); } diff --git a/src/backend/distributed/utils/reference_table_utils.c b/src/backend/distributed/utils/reference_table_utils.c index bc7c4cd06..cc1ad53c3 100644 --- a/src/backend/distributed/utils/reference_table_utils.c +++ b/src/backend/distributed/utils/reference_table_utils.c @@ -66,11 +66,6 @@ IsReferenceTable(Oid relationId) { CitusTableCacheEntry *tableEntry = GetCitusTableCacheEntry(relationId); - if (!tableEntry->isCitusTable) - { - return false; - } - if (tableEntry->partitionMethod != DISTRIBUTE_BY_NONE) { return false;