• Peter Geoghegan's avatar
    Reconsider nbtree page deletion assertion. · 67b0b2db
    Peter Geoghegan authored
    Commit 624686ab added an assertion that verified that _bt_search
    successfully relocated the leaf page undergoing deletion.  Page deletion
    cannot deal with the case where the descent stack is to the right of the
    page, so this seemed critical (deletion can only handle the case where
    the descent stack is to the left of the leaf/target page).  However, the
    assertion went a bit too far.
    
    Since only a buffer pin is held on the leaf page throughout the call to
    _bt_search, nothing guarantees that it can't have split during this
    small window.  And if does actually split, _bt_search may end up
    "relocating" a page to the right of the original target leaf page.  This
    scenario seems extremely unlikely, but it must still be considered.
    Remove the assertion, and document how we cope in this scenario.
    67b0b2db
nbtpage.c 80.1 KB