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:
Peter Geoghegan 2020-11-15 11:53:37 -08:00
parent ff94205787
commit 46cf3c72c3
1 changed files with 2 additions and 5 deletions

View File

@ -1129,6 +1129,8 @@ _bt_insertonpg(Relation rel,
IndexRelationGetNumberOfKeyAttributes(rel));
Assert(!BTreeTupleIsPosting(itup));
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
@ -1138,11 +1140,6 @@ _bt_insertonpg(Relation rel,
*/
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?
*/