From: Peter Geoghegan Date: Fri, 5 Aug 2022 20:06:19 +0000 (-0700) Subject: Add missing parenthesis to max item size macro. X-Git-Tag: REL_16_BETA1~2041 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b2fe783aecadb42e17868787bb45aa6328796d2a;p=thirdparty%2Fpostgresql.git Add missing parenthesis to max item size macro. Oversight in commit 92f37505, per buildfarm. --- diff --git a/src/backend/access/nbtree/nbtdedup.c b/src/backend/access/nbtree/nbtdedup.c index 0207421a5d9..9e15ae57586 100644 --- a/src/backend/access/nbtree/nbtdedup.c +++ b/src/backend/access/nbtree/nbtdedup.c @@ -566,6 +566,8 @@ _bt_dedup_finish_pending(Page newpage, BTDedupState state) { /* Use original, unchanged base tuple */ tuplesz = IndexTupleSize(state->base); + Assert(tuplesz == MAXALIGN(IndexTupleSize(state->base))); + Assert(tuplesz <= BTMaxItemSize(newpage)); if (PageAddItem(newpage, (Item) state->base, tuplesz, tupoff, false, false) == InvalidOffsetNumber) elog(ERROR, "deduplication failed to add tuple to page"); @@ -585,6 +587,7 @@ _bt_dedup_finish_pending(Page newpage, BTDedupState state) state->intervals[state->nintervals].nitems = state->nitems; Assert(tuplesz == MAXALIGN(IndexTupleSize(final))); + Assert(tuplesz <= BTMaxItemSize(newpage)); if (PageAddItem(newpage, (Item) final, tuplesz, tupoff, false, false) == InvalidOffsetNumber) elog(ERROR, "deduplication failed to add tuple to page"); diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index 52a422793b0..8e4f6864e59 100644 --- a/src/include/access/nbtree.h +++ b/src/include/access/nbtree.h @@ -162,10 +162,10 @@ typedef struct BTMetaPageData * attribute, which we account for here. */ #define BTMaxItemSize(page) \ - MAXALIGN_DOWN((PageGetPageSize(page) - \ - MAXALIGN(SizeOfPageHeaderData + 3*sizeof(ItemIdData)) - \ - MAXALIGN(sizeof(BTPageOpaqueData))) / 3) - \ - MAXALIGN(sizeof(ItemPointerData)) + (MAXALIGN_DOWN((PageGetPageSize(page) - \ + MAXALIGN(SizeOfPageHeaderData + 3*sizeof(ItemIdData)) - \ + MAXALIGN(sizeof(BTPageOpaqueData))) / 3) - \ + MAXALIGN(sizeof(ItemPointerData))) #define BTMaxItemSizeNoHeapTid(page) \ MAXALIGN_DOWN((PageGetPageSize(page) - \ MAXALIGN(SizeOfPageHeaderData + 3*sizeof(ItemIdData)) - \