Tweak dynahash.c to avoid wasting memory space in non-shared hash tables.
Tom Lane <tgl@sss.pgh.pa.us>
Tweak dynahash.c to avoid wasting memory space in non-shared hash tables. palloc() will normally round allocation requests up to the next power of 2, so make dynahash choose allocation sizes that are as close to a power of 2 as possible. Back-patch to 8.1 --- the problem exists further back, but a much larger patch would be needed and it doesn't seem worth taking any risks.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/hash/dynahash.c | modified | +43 −8 |
| src/include/utils/hsearch.h | modified | +1 −3 |