Skip to content

Commit 2cd2569

Browse files
committed
Convert macros to static inline functions (bufpage.h)
Remove PageIsValid() and PageSizeIsValid(), which weren't used and seem unnecessary. Some code using these formerly-macros needs some adjustments because it was previously playing loose with the Page vs. PageHeader types, which is no longer possible with the functions instead of macros. Reviewed-by: Amul Sul <sulamul@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/5b558da8-99fb-0a99-83dd-f72f05388517%40enterprisedb.com
1 parent eed959a commit 2cd2569

File tree

5 files changed

+182
-121
lines changed

5 files changed

+182
-121
lines changed

contrib/pageinspect/rawpage.c

+13-11
Original file line numberDiff line numberDiff line change
@@ -254,15 +254,17 @@ page_header(PG_FUNCTION_ARGS)
254254
Datum values[9];
255255
bool nulls[9];
256256

257-
PageHeader page;
257+
Page page;
258+
PageHeader pageheader;
258259
XLogRecPtr lsn;
259260

260261
if (!superuser())
261262
ereport(ERROR,
262263
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
263264
errmsg("must be superuser to use raw page functions")));
264265

265-
page = (PageHeader) get_page_from_raw(raw_page);
266+
page = get_page_from_raw(raw_page);
267+
pageheader = (PageHeader) page;
266268

267269
/* Build a tuple descriptor for our result type */
268270
if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE)
@@ -282,8 +284,8 @@ page_header(PG_FUNCTION_ARGS)
282284
}
283285
else
284286
values[0] = LSNGetDatum(lsn);
285-
values[1] = UInt16GetDatum(page->pd_checksum);
286-
values[2] = UInt16GetDatum(page->pd_flags);
287+
values[1] = UInt16GetDatum(pageheader->pd_checksum);
288+
values[2] = UInt16GetDatum(pageheader->pd_flags);
287289

288290
/* pageinspect >= 1.10 uses int4 instead of int2 for those fields */
289291
switch (TupleDescAttr(tupdesc, 3)->atttypid)
@@ -292,18 +294,18 @@ page_header(PG_FUNCTION_ARGS)
292294
Assert(TupleDescAttr(tupdesc, 4)->atttypid == INT2OID &&
293295
TupleDescAttr(tupdesc, 5)->atttypid == INT2OID &&
294296
TupleDescAttr(tupdesc, 6)->atttypid == INT2OID);
295-
values[3] = UInt16GetDatum(page->pd_lower);
296-
values[4] = UInt16GetDatum(page->pd_upper);
297-
values[5] = UInt16GetDatum(page->pd_special);
297+
values[3] = UInt16GetDatum(pageheader->pd_lower);
298+
values[4] = UInt16GetDatum(pageheader->pd_upper);
299+
values[5] = UInt16GetDatum(pageheader->pd_special);
298300
values[6] = UInt16GetDatum(PageGetPageSize(page));
299301
break;
300302
case INT4OID:
301303
Assert(TupleDescAttr(tupdesc, 4)->atttypid == INT4OID &&
302304
TupleDescAttr(tupdesc, 5)->atttypid == INT4OID &&
303305
TupleDescAttr(tupdesc, 6)->atttypid == INT4OID);
304-
values[3] = Int32GetDatum(page->pd_lower);
305-
values[4] = Int32GetDatum(page->pd_upper);
306-
values[5] = Int32GetDatum(page->pd_special);
306+
values[3] = Int32GetDatum(pageheader->pd_lower);
307+
values[4] = Int32GetDatum(pageheader->pd_upper);
308+
values[5] = Int32GetDatum(pageheader->pd_special);
307309
values[6] = Int32GetDatum(PageGetPageSize(page));
308310
break;
309311
default:
@@ -312,7 +314,7 @@ page_header(PG_FUNCTION_ARGS)
312314
}
313315

314316
values[7] = UInt16GetDatum(PageGetPageLayoutVersion(page));
315-
values[8] = TransactionIdGetDatum(page->pd_prune_xid);
317+
values[8] = TransactionIdGetDatum(pageheader->pd_prune_xid);
316318

317319
/* Build and return the tuple. */
318320

src/backend/storage/page/bufpage.c

+9-9
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ PageAddItemExtended(Page page,
230230
{
231231
if (offsetNumber < limit)
232232
{
233-
itemId = PageGetItemId(phdr, offsetNumber);
233+
itemId = PageGetItemId(page, offsetNumber);
234234
if (ItemIdIsUsed(itemId) || ItemIdHasStorage(itemId))
235235
{
236236
elog(WARNING, "will not overwrite a used ItemId");
@@ -248,7 +248,7 @@ PageAddItemExtended(Page page,
248248
{
249249
/* offsetNumber was not passed in, so find a free slot */
250250
/* if no free slot, we'll put it at limit (1st open slot) */
251-
if (PageHasFreeLinePointers(phdr))
251+
if (PageHasFreeLinePointers(page))
252252
{
253253
/*
254254
* Scan line pointer array to locate a "recyclable" (unused)
@@ -262,7 +262,7 @@ PageAddItemExtended(Page page,
262262
offsetNumber < limit; /* limit is maxoff+1 */
263263
offsetNumber++)
264264
{
265-
itemId = PageGetItemId(phdr, offsetNumber);
265+
itemId = PageGetItemId(page, offsetNumber);
266266

267267
/*
268268
* We check for no storage as well, just to be paranoid;
@@ -277,7 +277,7 @@ PageAddItemExtended(Page page,
277277
if (offsetNumber >= limit)
278278
{
279279
/* the hint is wrong, so reset it */
280-
PageClearHasFreeLinePointers(phdr);
280+
PageClearHasFreeLinePointers(page);
281281
}
282282
}
283283
else
@@ -322,7 +322,7 @@ PageAddItemExtended(Page page,
322322
/*
323323
* OK to insert the item. First, shuffle the existing pointers if needed.
324324
*/
325-
itemId = PageGetItemId(phdr, offsetNumber);
325+
itemId = PageGetItemId(page, offsetNumber);
326326

327327
if (needshuffle)
328328
memmove(itemId + 1, itemId,
@@ -1004,7 +1004,7 @@ PageGetHeapFreeSpace(Page page)
10041004
nline = PageGetMaxOffsetNumber(page);
10051005
if (nline >= MaxHeapTuplesPerPage)
10061006
{
1007-
if (PageHasFreeLinePointers((PageHeader) page))
1007+
if (PageHasFreeLinePointers(page))
10081008
{
10091009
/*
10101010
* Since this is just a hint, we must confirm that there is
@@ -1139,7 +1139,7 @@ PageIndexTupleDelete(Page page, OffsetNumber offnum)
11391139
nline--; /* there's one less than when we started */
11401140
for (i = 1; i <= nline; i++)
11411141
{
1142-
ItemId ii = PageGetItemId(phdr, i);
1142+
ItemId ii = PageGetItemId(page, i);
11431143

11441144
Assert(ItemIdHasStorage(ii));
11451145
if (ItemIdGetOffset(ii) <= offset)
@@ -1374,7 +1374,7 @@ PageIndexTupleDeleteNoCompact(Page page, OffsetNumber offnum)
13741374

13751375
for (i = 1; i <= nline; i++)
13761376
{
1377-
ItemId ii = PageGetItemId(phdr, i);
1377+
ItemId ii = PageGetItemId(page, i);
13781378

13791379
if (ItemIdHasStorage(ii) && ItemIdGetOffset(ii) <= offset)
13801380
ii->lp_off += size;
@@ -1473,7 +1473,7 @@ PageIndexTupleOverwrite(Page page, OffsetNumber offnum,
14731473
/* adjust affected line pointers too */
14741474
for (i = FirstOffsetNumber; i <= itemcount; i++)
14751475
{
1476-
ItemId ii = PageGetItemId(phdr, i);
1476+
ItemId ii = PageGetItemId(page, i);
14771477

14781478
/* Allow items without storage; currently only BRIN needs that */
14791479
if (ItemIdHasStorage(ii) && ItemIdGetOffset(ii) <= offset)

src/bin/pg_checksums/pg_checksums.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ scan_file(const char *fn, int segmentno)
228228
current_size += r;
229229

230230
/* New pages have no checksum yet */
231-
if (PageIsNew(header))
231+
if (PageIsNew(buf.data))
232232
continue;
233233

234234
csum = pg_checksum_page(buf.data, blockno + segmentno * RELSEG_SIZE);

0 commit comments

Comments
 (0)