From 59ab3be9e4d3e3cdf03bada2f6fb3d71a1e42908 Mon Sep 17 00:00:00 2001 From: Peter Geoghegan Date: Sun, 24 Mar 2019 12:28:58 -0700 Subject: [PATCH] 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. --- src/backend/access/nbtree/nbtsplitloc.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c index 34228b133e8..4969853e7f7 100644 --- a/src/backend/access/nbtree/nbtsplitloc.c +++ b/src/backend/access/nbtree/nbtsplitloc.c @@ -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++)