Commit 59ab3be9 authored by Peter Geoghegan's avatar Peter Geoghegan

Remove dead code from nbtsplitloc.c.

It doesn't make sense to consider the possibility that there will only
be one candidate split point when choosing among split points to find
the split with the lowest penalty.  This is a vestige of an earlier
version of the patch that became commit fab25024.

Issue spotted while rereviewing coverage of the nbtree patch series
using gcov.
parent bd9396a0
...@@ -520,13 +520,12 @@ _bt_splitcmp(const void *arg1, const void *arg2) ...@@ -520,13 +520,12 @@ _bt_splitcmp(const void *arg1, const void *arg2)
} }
/* /*
* Subroutine to find the "best" split point among an array of acceptable * Subroutine to find the "best" split point among candidate split points.
* candidate split points that split without there being an excessively high * The best split point is the split point with the lowest penalty among split
* delta between the space left free on the left and right halves. The "best" * points that fall within current/final split interval. Penalty is an
* split point is the split point with the lowest penalty among split points * abstract score, with a definition that varies depending on whether we're
* that fall within current/final split interval. Penalty is an abstract * splitting a leaf page or an internal page. See _bt_split_penalty() for
* score, with a definition that varies depending on whether we're splitting a * details.
* leaf page or an internal page. See _bt_split_penalty() for details.
* *
* "perfectpenalty" is assumed to be the lowest possible penalty among * "perfectpenalty" is assumed to be the lowest possible penalty among
* candidate split points. This allows us to return early without wasting * candidate split points. This allows us to return early without wasting
...@@ -545,13 +544,6 @@ _bt_bestsplitloc(FindSplitData *state, int perfectpenalty, bool *newitemonleft) ...@@ -545,13 +544,6 @@ _bt_bestsplitloc(FindSplitData *state, int perfectpenalty, bool *newitemonleft)
lowsplit; lowsplit;
int highsplit = Min(state->interval, state->nsplits); int highsplit = Min(state->interval, state->nsplits);
/* No point in calculating penalty when there's only one choice */
if (state->nsplits == 1)
{
*newitemonleft = state->splits[0].newitemonleft;
return state->splits[0].firstoldonright;
}
bestpenalty = INT_MAX; bestpenalty = INT_MAX;
lowsplit = 0; lowsplit = 0;
for (int i = lowsplit; i < highsplit; i++) for (int i = lowsplit; i < highsplit; i++)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment