Fix longstanding error in _bt_search(): should moveright at top of loop not
Tom Lane <tgl@sss.pgh.pa.us>
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
| Path | Change | +/− |
|---|---|---|
| src/backend/access/nbtree/nbtsearch.c | modified | +10 −10 |