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

Lines changed: 13 additions & 11 deletions
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

Lines changed: 9 additions & 9 deletions
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

Lines changed: 1 addition & 1 deletion
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy