postgres.git / summary / log / commit / refs
commit 7dbe290da446544a04ace7d342841070f062a0ed
Author: Peter Geoghegan <pg@bowt.ie>
Date: Tue Mar 31 21:38:39 2020 +0000
First released in: 13.0
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.
src/backend/access/nbtree/nbtsort.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c
index e66cd36dfae..3924945664a 100644
--- a/src/backend/access/nbtree/nbtsort.c
+++ b/src/backend/access/nbtree/nbtsort.c
@@ -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,
[parent: c2da793fd280]