Add missing parenthesis to max item size macro.
authorPeter Geoghegan <pg@bowt.ie>
Fri, 5 Aug 2022 20:06:19 +0000 (13:06 -0700)
committerPeter Geoghegan <pg@bowt.ie>
Fri, 5 Aug 2022 20:06:19 +0000 (13:06 -0700)
Oversight in commit 92f37505, per buildfarm.

src/backend/access/nbtree/nbtdedup.c
src/include/access/nbtree.h

index 0207421a5d977204f11a58c630859b1247a2e042..9e15ae57586dac764aa614f5793fc0c14990538b 100644 (file)
@@ -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");
index 52a422793b0b5796dece90ba259b07622f996fdc..8e4f6864e595b190d6fbb1a4c18d5811c9af6cc0 100644 (file)
@@ -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)) - \