• Peter Geoghegan's avatar
    Refactor nbtree fastpath optimization. · b029395f
    Peter Geoghegan authored
    Commit 2b272734, which added the fastpath rightmost leaf page cache
    insert optimization, added code to _bt_doinsert() to handle using and
    invalidating the backend local block cache.  It doesn't seem like a good
    place to handle these low level details, though.  _bt_doinsert() is
    supposed to be a high level function -- it is the main entry point to
    nbtinsert.c.
    
    Restructure the code by placing handling of the rightmost block cache at
    the start of a new _bt_search() shim function, _bt_search_insert().  The
    new function is called from _bt_doinsert(), which uses it as a
    _bt_search() variant that conveniently accepts its BTInsertState state
    as an argument.  _bt_doinsert() no longer needs to directly consider the
    fastpath optimization.
    
    Discussion: https://postgr.es/m/CAH2-Wzk59cxKJRd=rfbyub6-V4yWRjsOYRkUNHBLT1P1GdtCQQ@mail.gmail.com
    b029395f
nbtinsert.c 88.8 KB