From 4e7d5060f5979b1533994010d1ae217f3aabd418 Mon Sep 17 00:00:00 2001 From: Nils Dijk Date: Fri, 5 Nov 2021 13:07:51 +0100 Subject: [PATCH] reinstate optimization that got unintentionally broken in 366461ccdb7c1 (#5418) DESCRIPTION: Reinstate optimisation for uniform shard interval ranges During a refactor introduced in #4132 the following change was made, which made the optimisation in `CalculateUniformHashRangeIndex` unreachable: https://github.com/citusdata/citus/commit/366461ccdb7c1bbdfef0a8ab1c12632ee083f135#diff-565a339ed3c78bc5a0d4ffeb4e91032150b1dffbeeff59cd3e65981d20b998c7L319-R319 This PR reinstates the path to the optimisation! --- src/backend/distributed/utils/shardinterval_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/distributed/utils/shardinterval_utils.c b/src/backend/distributed/utils/shardinterval_utils.c index 87391e9b1..4e301791c 100644 --- a/src/backend/distributed/utils/shardinterval_utils.c +++ b/src/backend/distributed/utils/shardinterval_utils.c @@ -297,7 +297,7 @@ FindShardIntervalIndex(Datum searchedValue, CitusTableCacheEntry *cacheEntry) ShardInterval **shardIntervalCache = cacheEntry->sortedShardIntervalArray; int shardCount = cacheEntry->shardIntervalArrayLength; FmgrInfo *compareFunction = cacheEntry->shardIntervalCompareFunction; - bool useBinarySearch = (IsCitusTableTypeCacheEntry(cacheEntry, HASH_DISTRIBUTED) || + bool useBinarySearch = (!IsCitusTableTypeCacheEntry(cacheEntry, HASH_DISTRIBUTED) || !cacheEntry->hasUniformHashDistribution); int shardIndex = INVALID_SHARD_INDEX;