aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeHash.c
diff options
context:
space:
mode:
authorDavid Rowley <drowley@postgresql.org>2020-04-08 18:29:51 +1200
committerDavid Rowley <drowley@postgresql.org>2020-04-08 18:29:51 +1200
commit02a2e8b442002a698336954633b0ccc4e30061e6 (patch)
treee232e8a3b0fd259c78dc6162af4a8bd3a26e94ff /src/backend/executor/nodeHash.c
parentc0187869a0f6eb05135d388462522a593ced1b88 (diff)
downloadpostgresql-02a2e8b442002a698336954633b0ccc4e30061e6.tar.gz
postgresql-02a2e8b442002a698336954633b0ccc4e30061e6.zip
Modify additional power 2 calculations to use new helper functions
2nd pass of modifying various places which obtain the next power of 2 of a number and make them use the new functions added in f0705bb62. In passing, also modify num_combinations(). This can be implemented using simple bitshifting rather than looping. Reviewed-by: John Naylor Discussion: https://postgr.es/m/20200114173553.GE32763%40fetter.org
Diffstat (limited to 'src/backend/executor/nodeHash.c')
-rw-r--r--src/backend/executor/nodeHash.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c
index b6d50849086..c881dc1de81 100644
--- a/src/backend/executor/nodeHash.c
+++ b/src/backend/executor/nodeHash.c
@@ -831,9 +831,7 @@ ExecChooseHashTableSize(double ntuples, int tupwidth, bool useskew,
dbatch = ceil(inner_rel_bytes / (hash_table_bytes - bucket_bytes));
dbatch = Min(dbatch, max_pointers);
minbatch = (int) dbatch;
- nbatch = 2;
- while (nbatch < minbatch)
- nbatch <<= 1;
+ nbatch = pg_nextpower2_32(Max(2, minbatch));
}
Assert(nbuckets > 0);
@@ -2272,9 +2270,7 @@ ExecHashBuildSkewHash(HashJoinTable hashtable, Hash *node, int mcvsToUse)
* MaxAllocSize/sizeof(void *)/8, but that is not currently possible
* since we limit pg_statistic entries to much less than that.
*/
- nbuckets = 2;
- while (nbuckets <= mcvsToUse)
- nbuckets <<= 1;
+ nbuckets = pg_nextpower2_32(mcvsToUse + 1);
/* use two more bits just to help avoid collisions */
nbuckets <<= 2;