Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2cd2569

Browse files
committed
Convert macros to static inline functions (bufpage.h)
Remove PageIsValid() and PageSizeIsValid(), which weren't used andseem unnecessary.Some code using these formerly-macros needs some adjustments becauseit 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 parenteed959a commit2cd2569

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
Datumvalues[9];
255255
boolnulls[9];
256256

257-
PageHeaderpage;
257+
Pagepage;
258+
PageHeaderpageheader;
258259
XLogRecPtrlsn;
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
caseINT4OID:
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-
ItemIdii=PageGetItemId(phdr,i);
1142+
ItemIdii=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-
ItemIdii=PageGetItemId(phdr,i);
1377+
ItemIdii=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-
ItemIdii=PageGetItemId(phdr,i);
1476+
ItemIdii=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)

[8]ページ先頭

©2009-2025 Movatter.jp