OSDN Git Service

btree source code cleanups:
authorBruce Momjian <bruce@momjian.us>
Wed, 21 Feb 2007 20:02:17 +0000 (20:02 +0000)
committerBruce Momjian <bruce@momjian.us>
Wed, 21 Feb 2007 20:02:17 +0000 (20:02 +0000)
commit6f519ad01c08b3866df3774558621937644036b9
tree7bcccc344761c666665d2c3a5f0a2e00c43d71d9
parent526b1d697985642ee42959d65903f1d504ae57b0
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
src/backend/access/nbtree/nbtinsert.c
src/backend/storage/page/bufpage.c
src/include/storage/bufpage.h