Fix longstanding error in _bt_search(): should moveright at top of loop not

Tom Lane <tgl@sss.pgh.pa.us>

Commit: a4ffca6bdfea4df003f6ffd044b575fabd7e084b
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2003-07-29T22:18:48Z
Releases: 7.3.5
Fix longstanding error in _bt_search(): should moveright at top of loop not
bottom.  Otherwise we fail to moveright when the root page was split while
we were "in flight" to it.  This is not a significant problem when the root
is above the leaf level, but if the root was also a leaf (ie, a single-page
index just got split) we may return the wrong leaf page to the caller,
resulting in failure to find a key that is in fact present.  Bug has existed
at least since 7.1, probably forever.

Files

PathChange+/−
src/backend/access/nbtree/nbtsearch.c modified +10 −10