]> granicus.if.org Git - postgresql/commit
Fix "failed to re-find parent key" btree VACUUM failure by revising page
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 1 Nov 2006 19:43:17 +0000 (19:43 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 1 Nov 2006 19:43:17 +0000 (19:43 +0000)
commit70ce5c908202ada7616f7afded8a91bbf2742471
tree82bac8aac8c437a381c9837e5fb8a46758beecaf
parent19d0c46def867119219e8362aecd3ba2fa745ee2
Fix "failed to re-find parent key" btree VACUUM failure by revising page
deletion code to avoid the case where an upper-level btree page remains "half
dead" for a significant period of time, and to block insertions into a key
range that is in process of being re-assigned to the right sibling of the
deleted page's parent.  This prevents the scenario reported by Ed L. wherein
index keys could become out-of-order in the grandparent index level.

Since this is a moderately invasive fix, I'm applying it only to HEAD.
The bug exists back to 7.4, but the back branches will get a different patch.
src/backend/access/nbtree/README
src/backend/access/nbtree/nbtinsert.c
src/backend/access/nbtree/nbtpage.c
src/backend/access/nbtree/nbtree.c
src/backend/access/nbtree/nbtxlog.c
src/include/access/nbtree.h