Fix integer overflow bug in GiST buffering build calculations.
Heikki Linnakangas <heikki.linnakangas@iki.fi>
Fix integer overflow bug in GiST buffering build calculations. The result of (maintenance_work_mem * 1024) / BLCKSZ doesn't fit in a signed 32-bit integer, if maintenance_work_mem >= 2GB. Use double instead. And while we're at it, write the calculations in an easier to understand form, with the intermediary steps written out and commented.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/gist/gistbuild.c | modified | +23 −9 |