btree source code cleanups:
Bruce Momjian <bruce@momjian.us>
btree source code cleanups: I refactored findsplitloc and checksplitloc so that the division of labor is more clear IMO. I pushed all the space calculation inside the loop to checksplitloc. I also fixed the off by 4 in free space calculation caused by PageGetFreeSpace subtracting sizeof(ItemIdData), even though it was harmless, because it was distracting and I felt it might come back to bite us in the future if we change the page layout or alignments. There's now a new function PageGetExactFreeSpace that doesn't do the subtraction. findsplitloc now tries the "just the new item to right page" split as well. If people don't like the refactoring, I can write a patch to just add that. Heikki Linnakangas
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/nbtree/nbtinsert.c | modified | +96 −54 |
| src/backend/storage/page/bufpage.c | modified | +23 −3 |
| src/include/storage/bufpage.h | modified | +2 −1 |