Remove dead code from nbtsplitloc.c.
authorPeter Geoghegan <pg@bowt.ie>
Sun, 24 Mar 2019 19:28:58 +0000 (12:28 -0700)
committerPeter Geoghegan <pg@bowt.ie>
Sun, 24 Mar 2019 19:28:58 +0000 (12:28 -0700)
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.

src/backend/access/nbtree/nbtsplitloc.c

index 34228b133e8aa4f6246121312ff297918ba26eed..4969853e7f7db5fd24eef93396c5e5ef696bfa78 100644 (file)
@@ -520,13 +520,12 @@ _bt_splitcmp(const void *arg1, const void *arg2)
 }
 
 /*
- * Subroutine to find the "best" split point among an array of acceptable
- * candidate split points that split without there being an excessively high
- * delta between the space left free on the left and right halves.  The "best"
- * split point is the split point with the lowest penalty among split points
- * that fall within current/final split interval.  Penalty is an abstract
- * score, with a definition that varies depending on whether we're splitting a
- * leaf page or an internal page.  See _bt_split_penalty() for details.
+ * Subroutine to find the "best" split point among candidate split points.
+ * The best split point is the split point with the lowest penalty among split
+ * points that fall within current/final split interval.  Penalty is an
+ * abstract score, with a definition that varies depending on whether we're
+ * splitting a leaf page or an internal page.  See _bt_split_penalty() for
+ * details.
  *
  * "perfectpenalty" is assumed to be the lowest possible penalty among
  * candidate split points.  This allows us to return early without wasting
@@ -545,13 +544,6 @@ _bt_bestsplitloc(FindSplitData *state, int perfectpenalty, bool *newitemonleft)
                                lowsplit;
        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;
        lowsplit = 0;
        for (int i = lowsplit; i < highsplit; i++)