Add _bt_binsrch() scantid assertion to nbtree.
Assert that _bt_binsrch() binary searches with scantid set in insertion scankey cannot be performed on leaf pages. Leaf-level binary searches where scantid is set must use _bt_binsrch_insert() instead. _bt_binsrch_insert() is likely to have additional responsibilities in the future, such as searching within GIN-style posting lists using scantid. It seems like a good idea to tighten things up now.
This commit is contained in:
parent
3146f5257f
commit
55d015bde0
@ -347,12 +347,14 @@ _bt_binsrch(Relation rel,
|
||||
int32 result,
|
||||
cmpval;
|
||||
|
||||
/* Requesting nextkey semantics while using scantid seems nonsensical */
|
||||
Assert(!key->nextkey || key->scantid == NULL);
|
||||
|
||||
page = BufferGetPage(buf);
|
||||
opaque = (BTPageOpaque) PageGetSpecialPointer(page);
|
||||
|
||||
/* Requesting nextkey semantics while using scantid seems nonsensical */
|
||||
Assert(!key->nextkey || key->scantid == NULL);
|
||||
/* scantid-set callers must use _bt_binsrch_insert() on leaf pages */
|
||||
Assert(!P_ISLEAF(opaque) || key->scantid == NULL);
|
||||
|
||||
low = P_FIRSTDATAKEY(opaque);
|
||||
high = PageGetMaxOffsetNumber(page);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user