Add CREATE INDEX deduplication assertions.

Add two assertions that verify the assumptions about posting list tuple
space accounting and suffix truncation made within nbtsort.c.
This commit is contained in:
Peter Geoghegan 2020-03-31 14:38:39 -07:00
parent c2da793fd2
commit 7dbe290da4
1 changed files with 2 additions and 0 deletions

View File

@ -908,6 +908,7 @@ _bt_buildadd(BTWriteState *wstate, BTPageState *state, IndexTuple itup,
* assume that suffix truncation neither enlarges nor shrinks new high key
* when applying soft limit, except when last tuple has a posting list.)
*/
Assert(last_truncextra == 0 || isleaf);
if (pgspc < itupsz + (isleaf ? MAXALIGN(sizeof(ItemPointerData)) : 0) ||
(pgspc + last_truncextra < state->btps_full && last_off > P_FIRSTKEY))
{
@ -983,6 +984,7 @@ _bt_buildadd(BTWriteState *wstate, BTPageState *state, IndexTuple itup,
ii = PageGetItemId(opage, OffsetNumberPrev(last_off));
lastleft = (IndexTuple) PageGetItem(opage, ii);
Assert(IndexTupleSize(oitup) > last_truncextra);
truncated = _bt_truncate(wstate->index, lastleft, oitup,
wstate->inskey);
if (!PageIndexTupleOverwrite(opage, P_HIKEY, (Item) truncated,