Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 1a4be10

Browse files
committed
Convert PageAddItem into a macro to save a few cycles.
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>
1 parent b1328d7 commit 1a4be10

File tree

2 files changed

+5
-22
lines changed

2 files changed

+5
-22
lines changed

src/backend/storage/page/bufpage.c

-20
Original file line numberDiff line numberDiff line change
@@ -338,26 +338,6 @@ PageAddItemExtended(Page page,
338338
return offsetNumber;
339339
}
340340

341-
/*
342-
* PageAddItem
343-
*
344-
* Add an item to a page. Return value is offset at which it was
345-
* inserted, or InvalidOffsetNumber if the item is not inserted for
346-
* any reason.
347-
*
348-
* Passing the 'overwrite' and 'is_heap' parameters as true causes the
349-
* PAI_OVERWRITE and PAI_IS_HEAP flags to be set, respectively.
350-
*
351-
* !!! EREPORT(ERROR) IS DISALLOWED HERE !!!
352-
*/
353-
OffsetNumber
354-
PageAddItem(Page page, Item item, Size size, OffsetNumber offsetNumber,
355-
bool overwrite, bool is_heap)
356-
{
357-
return PageAddItemExtended(page, item, size, offsetNumber,
358-
overwrite ? PAI_OVERWRITE : 0 |
359-
is_heap ? PAI_IS_HEAP : 0);
360-
}
361341

362342
/*
363343
* PageGetTempPage

src/include/storage/bufpage.h

+5-2
Original file line numberDiff line numberDiff line change
@@ -410,10 +410,13 @@ do { \
410410
#define PAI_OVERWRITE (1 << 0)
411411
#define PAI_IS_HEAP (1 << 1)
412412

413+
#define PageAddItem(page, item, size, offsetNumber, overwrite, is_heap) \
414+
PageAddItemExtended(page, item, size, offsetNumber, \
415+
((overwrite) ? PAI_OVERWRITE : 0) | \
416+
((is_heap) ? PAI_IS_HEAP : 0))
417+
413418
extern void PageInit(Page page, Size pageSize, Size specialSize);
414419
extern bool PageIsVerified(Page page, BlockNumber blkno);
415-
extern OffsetNumber PageAddItem(Page page, Item item, Size size,
416-
OffsetNumber offsetNumber, bool overwrite, bool is_heap);
417420
extern OffsetNumber PageAddItemExtended(Page page, Item item, Size size,
418421
OffsetNumber offsetNumber, int flags);
419422
extern Page PageGetTempPage(Page page);

0 commit comments

Comments
 (0)