IsReferenceTable, ShardIntervalCount: remove misleading isCitusTable check

GetCitusTableCacheEntry raises an error if relationId is not distributed
pull/3903/head
Philip Dubé 2020-06-11 15:35:02 +00:00
parent f344c1a4bc
commit 8faaaee6a5
3 changed files with 4 additions and 15 deletions

View File

@ -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;
}

View File

@ -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);
}

View File

@ -66,11 +66,6 @@ IsReferenceTable(Oid relationId)
{
CitusTableCacheEntry *tableEntry = GetCitusTableCacheEntry(relationId);
if (!tableEntry->isCitusTable)
{
return false;
}
if (tableEntry->partitionMethod != DISTRIBUTE_BY_NONE)
{
return false;