nbtree: Demote incomplete split "can't happen" error.
Only a basic logic bug in a _bt_insertonpg() caller could lead to a violation of this invariant (index corruption won't do it). A "can't happen" error seems inappropriate (it is arbitrary at best). Demote the error to a simple assertion. This matches similar nearby sanity checks.
This commit is contained in:
parent
ff94205787
commit
46cf3c72c3
@ -1129,6 +1129,8 @@ _bt_insertonpg(Relation rel,
|
|||||||
IndexRelationGetNumberOfKeyAttributes(rel));
|
IndexRelationGetNumberOfKeyAttributes(rel));
|
||||||
Assert(!BTreeTupleIsPosting(itup));
|
Assert(!BTreeTupleIsPosting(itup));
|
||||||
Assert(MAXALIGN(IndexTupleSize(itup)) == itemsz);
|
Assert(MAXALIGN(IndexTupleSize(itup)) == itemsz);
|
||||||
|
/* Caller must always finish incomplete split for us */
|
||||||
|
Assert(!P_INCOMPLETE_SPLIT(lpageop));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Every internal page should have exactly one negative infinity item at
|
* Every internal page should have exactly one negative infinity item at
|
||||||
@ -1138,11 +1140,6 @@ _bt_insertonpg(Relation rel,
|
|||||||
*/
|
*/
|
||||||
Assert(P_ISLEAF(lpageop) || newitemoff > P_FIRSTDATAKEY(lpageop));
|
Assert(P_ISLEAF(lpageop) || newitemoff > P_FIRSTDATAKEY(lpageop));
|
||||||
|
|
||||||
/* The caller should've finished any incomplete splits already. */
|
|
||||||
if (P_INCOMPLETE_SPLIT(lpageop))
|
|
||||||
elog(ERROR, "cannot insert to incompletely split page %u",
|
|
||||||
BufferGetBlockNumber(buf));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Do we need to split an existing posting list item?
|
* Do we need to split an existing posting list item?
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user