mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
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
This commit is contained in:
@ -254,7 +254,8 @@ page_header(PG_FUNCTION_ARGS)
|
||||
Datum values[9];
|
||||
bool nulls[9];
|
||||
|
||||
PageHeader page;
|
||||
Page page;
|
||||
PageHeader pageheader;
|
||||
XLogRecPtr lsn;
|
||||
|
||||
if (!superuser())
|
||||
@ -262,7 +263,8 @@ page_header(PG_FUNCTION_ARGS)
|
||||
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||
errmsg("must be superuser to use raw page functions")));
|
||||
|
||||
page = (PageHeader) get_page_from_raw(raw_page);
|
||||
page = get_page_from_raw(raw_page);
|
||||
pageheader = (PageHeader) page;
|
||||
|
||||
/* Build a tuple descriptor for our result type */
|
||||
if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE)
|
||||
@ -282,8 +284,8 @@ page_header(PG_FUNCTION_ARGS)
|
||||
}
|
||||
else
|
||||
values[0] = LSNGetDatum(lsn);
|
||||
values[1] = UInt16GetDatum(page->pd_checksum);
|
||||
values[2] = UInt16GetDatum(page->pd_flags);
|
||||
values[1] = UInt16GetDatum(pageheader->pd_checksum);
|
||||
values[2] = UInt16GetDatum(pageheader->pd_flags);
|
||||
|
||||
/* pageinspect >= 1.10 uses int4 instead of int2 for those fields */
|
||||
switch (TupleDescAttr(tupdesc, 3)->atttypid)
|
||||
@ -292,18 +294,18 @@ page_header(PG_FUNCTION_ARGS)
|
||||
Assert(TupleDescAttr(tupdesc, 4)->atttypid == INT2OID &&
|
||||
TupleDescAttr(tupdesc, 5)->atttypid == INT2OID &&
|
||||
TupleDescAttr(tupdesc, 6)->atttypid == INT2OID);
|
||||
values[3] = UInt16GetDatum(page->pd_lower);
|
||||
values[4] = UInt16GetDatum(page->pd_upper);
|
||||
values[5] = UInt16GetDatum(page->pd_special);
|
||||
values[3] = UInt16GetDatum(pageheader->pd_lower);
|
||||
values[4] = UInt16GetDatum(pageheader->pd_upper);
|
||||
values[5] = UInt16GetDatum(pageheader->pd_special);
|
||||
values[6] = UInt16GetDatum(PageGetPageSize(page));
|
||||
break;
|
||||
case INT4OID:
|
||||
Assert(TupleDescAttr(tupdesc, 4)->atttypid == INT4OID &&
|
||||
TupleDescAttr(tupdesc, 5)->atttypid == INT4OID &&
|
||||
TupleDescAttr(tupdesc, 6)->atttypid == INT4OID);
|
||||
values[3] = Int32GetDatum(page->pd_lower);
|
||||
values[4] = Int32GetDatum(page->pd_upper);
|
||||
values[5] = Int32GetDatum(page->pd_special);
|
||||
values[3] = Int32GetDatum(pageheader->pd_lower);
|
||||
values[4] = Int32GetDatum(pageheader->pd_upper);
|
||||
values[5] = Int32GetDatum(pageheader->pd_special);
|
||||
values[6] = Int32GetDatum(PageGetPageSize(page));
|
||||
break;
|
||||
default:
|
||||
@ -312,7 +314,7 @@ page_header(PG_FUNCTION_ARGS)
|
||||
}
|
||||
|
||||
values[7] = UInt16GetDatum(PageGetPageLayoutVersion(page));
|
||||
values[8] = TransactionIdGetDatum(page->pd_prune_xid);
|
||||
values[8] = TransactionIdGetDatum(pageheader->pd_prune_xid);
|
||||
|
||||
/* Build and return the tuple. */
|
||||
|
||||
|
Reference in New Issue
Block a user