postgrespro.git / summary / log / commit / refs

commit    60f3cc9553c7ea7a1cc61bcd1efe51537f31e531
Author:   Peter Geoghegan <pg@bowt.ie>
Date:     Wed Dec 19 00:59:50 2018 +0000

    Correct obsolete nbtree recovery comments.
    
    Commit 40dae7ec537, which made the handling of interrupted nbtree page
    splits more robust, removed an nbtree-specific end-of-recovery cleanup
    step.  This meant that it was no longer possible to complete an
    interrupted page split during recovery.  However, a reference to
    recovery as a reason for using a NULL stack while inserting into a
    parent page was missed.  Remove the reference.
    
    Remove a similar obsolete reference to recovery that was introduced much
    more recently, as part of the btree fastpath optimization enhancement
    that made it into Postgres 11 (commit 2b272734, and follow-up commits).
    
    Backpatch: 11-, where the fastpath optimization was introduced.


src/backend/access/nbtree/nbtinsert.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index 582e5b0652..80437cc831 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -876,10 +876,10 @@ _bt_insertonpg(Relation rel, * all the required conditions, including the fact that this page has * enough freespace. Note that this routine can in theory deal with * the situation where a NULL stack pointer is passed (that's what - * would happen if the fastpath is taken), like it does during crash - * recovery. But that path is much slower, defeating the very purpose - * of the optimization. The following assertion should protect us - * from any future code changes that invalidate those assumptions. + * would happen if the fastpath is taken). But that path is much + * slower, defeating the very purpose of the optimization. The + * following assertion should protect us from any future code changes + * that invalidate those assumptions. * * Note that whenever we fail to take the fastpath, we clear the * cached block. Checking for a valid cached block at this point is @@ -1807,8 +1807,8 @@ _bt_checksplitloc(FindSplitData *state, * and it'd be possible for some other process to try to split or delete * one of these pages, and get confused because it cannot find the downlink.) * - * stack - stack showing how we got here. May be NULL in cases that don't - * have to be efficient (concurrent ROOT split, WAL recovery) + * stack - stack showing how we got here. Will be NULL when splitting true + * root, or during concurrent root split, where we can be inefficient * is_root - we split the true root * is_only - we split a page alone on its level (might have been fast root) */ [parent: 3cab54878dbf]