]> granicus.if.org Git - postgresql/commitdiff
Convert PageAddItem into a macro to save a few cycles.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 9 Sep 2016 22:17:07 +0000 (18:17 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 9 Sep 2016 22:17:07 +0000 (18:17 -0400)
Nowadays this is just a backwards-compatibility wrapper around
PageAddItemExtended, so let's avoid the extra level of function call.
In addition, because pretty much all callers are passing constants
for the two bool arguments, compilers will be able to constant-fold
the conversion to a flags bitmask.

Discussion: <552.1473445163@sss.pgh.pa.us>

src/backend/storage/page/bufpage.c
src/include/storage/bufpage.h

index 08e222e583b814a939d80cd16cd2e991e354a8ee..41a7dd0d6220b128292950ff4be7eb5aebdf677d 100644 (file)
@@ -338,26 +338,6 @@ PageAddItemExtended(Page page,
        return offsetNumber;
 }
 
-/*
- *     PageAddItem
- *
- *     Add an item to a page.  Return value is offset at which it was
- *     inserted, or InvalidOffsetNumber if the item is not inserted for
- *     any reason.
- *
- *     Passing the 'overwrite' and 'is_heap' parameters as true causes the
- *     PAI_OVERWRITE and PAI_IS_HEAP flags to be set, respectively.
- *
- *     !!! EREPORT(ERROR) IS DISALLOWED HERE !!!
- */
-OffsetNumber
-PageAddItem(Page page, Item item, Size size, OffsetNumber offsetNumber,
-                       bool overwrite, bool is_heap)
-{
-       return PageAddItemExtended(page, item, size, offsetNumber,
-                                                          overwrite ? PAI_OVERWRITE : 0 |
-                                                          is_heap ? PAI_IS_HEAP : 0);
-}
 
 /*
  * PageGetTempPage
index 0ea47f5457ebea285ca88399f5edb4f9893ac664..4cedff7fa4b7f5d57cb898907c8f7c566cc05757 100644 (file)
@@ -410,10 +410,13 @@ do { \
 #define PAI_OVERWRITE                  (1 << 0)
 #define PAI_IS_HEAP                            (1 << 1)
 
+#define PageAddItem(page, item, size, offsetNumber, overwrite, is_heap) \
+       PageAddItemExtended(page, item, size, offsetNumber, \
+                                               ((overwrite) ? PAI_OVERWRITE : 0) | \
+                                               ((is_heap) ? PAI_IS_HEAP : 0))
+
 extern void PageInit(Page page, Size pageSize, Size specialSize);
 extern bool PageIsVerified(Page page, BlockNumber blkno);
-extern OffsetNumber PageAddItem(Page page, Item item, Size size,
-                       OffsetNumber offsetNumber, bool overwrite, bool is_heap);
 extern OffsetNumber PageAddItemExtended(Page page, Item item, Size size,
                                        OffsetNumber offsetNumber, int flags);
 extern Page PageGetTempPage(Page page);