diff options
author | Peter Eisentraut | 2022-07-11 05:20:35 +0000 |
---|---|---|
committer | Peter Eisentraut | 2022-07-11 05:21:52 +0000 |
commit | 2cd2569c72b8920048e35c31c9be30a6170e1410 (patch) | |
tree | 4301fc14ecbd9a2eba1579733fff3932babc226e /contrib/pageinspect/rawpage.c | |
parent | eed959a457ea0ffb042f4881e23358ba145d148c (diff) |
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
Diffstat (limited to 'contrib/pageinspect/rawpage.c')
-rw-r--r-- | contrib/pageinspect/rawpage.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/contrib/pageinspect/rawpage.c b/contrib/pageinspect/rawpage.c index 730a46b1d84..90942be71e8 100644 --- a/contrib/pageinspect/rawpage.c +++ b/contrib/pageinspect/rawpage.c @@ -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. */ |