• Tom Lane's avatar
    Correct an old logic error in btree page splitting: when considering a split · 6cefacd7
    Tom Lane authored
    exactly at the point where we need to insert a new item, the calculation used
    the wrong size for the "high key" of the new left page.  This could lead to
    choosing an unworkable split, resulting in "PANIC: failed to add item to the
    left sibling" (or "right sibling") failure.  Although this bug has been there
    a long time, it's very difficult to trigger a failure before 8.2, since there
    was generally a lot of free space on both sides of a chosen split.  In 8.2,
    where the user-selected fill factor determines how much free space the code
    tries to leave, an unworkable split is much more likely.  Report by Joe
    Conway, diagnosis and fix by Heikki Linnakangas.
    6cefacd7
nbtinsert.c 53.2 KB