Re: [HACKERS] Dead code in _bt_split?
От | Bruce Momjian |
---|---|
Тема | Re: [HACKERS] Dead code in _bt_split? |
Дата | |
Msg-id | 200702212002.l1LK2JX26292@momjian.us обсуждение исходный текст |
Ответ на | Re: [HACKERS] Dead code in _bt_split? (Heikki Linnakangas <heikki@enterprisedb.com>) |
Список | pgsql-patches |
Patch applied. Thanks. --------------------------------------------------------------------------- Heikki Linnakangas wrote: > Tom Lane wrote: > > While testing it I realized that there seems to be a nearby bug in > > _bt_findsplitloc: it fails to consider the possibility of moving all the > > extant items to the left side. It will always return a firstright <= > > maxoff. ISTM this would mean that it could choose a bad split if the > > incoming item goes at the end and both it and the last extant item are > > large: in this case they should be split apart, but they won't be. > > > > Heikki, do you feel like looking at that, or shall I? > > 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. > > Some of the long variable names look ugly. camelCase or underscores > between words would be more readable, but I retained the old style for > the sake of consistency. > > -- > Heikki Linnakangas > EnterpriseDB http://www.enterprisedb.com > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Have you searched our list archives? > > http://archives.postgresql.org -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
В списке pgsql-patches по дате отправления: