contrib/pageinspect: Use SQL-standard function bodies.

In the same spirit as 969bbd0fa, 13e3796c9, 3f323eba8.

Tom Lane and Ronan Dunklau

Discussion: https://postgr.es/m/3316564.aeNJFYEL58@aivenlaptop
This commit is contained in:
Tom Lane 2024-12-29 14:58:05 -05:00
parent 667368fd26
commit 68ff25eef1
4 changed files with 78 additions and 2 deletions

View File

@ -13,7 +13,8 @@ OBJS = \
rawpage.o
EXTENSION = pageinspect
DATA = pageinspect--1.11--1.12.sql pageinspect--1.10--1.11.sql \
DATA = pageinspect--1.12--1.13.sql \
pageinspect--1.11--1.12.sql pageinspect--1.10--1.11.sql \
pageinspect--1.9--1.10.sql pageinspect--1.8--1.9.sql \
pageinspect--1.7--1.8.sql pageinspect--1.6--1.7.sql \
pageinspect--1.5.sql pageinspect--1.5--1.6.sql \

View File

@ -37,6 +37,7 @@ install_data(
'pageinspect--1.9--1.10.sql',
'pageinspect--1.10--1.11.sql',
'pageinspect--1.11--1.12.sql',
'pageinspect--1.12--1.13.sql',
'pageinspect.control',
kwargs: contrib_data_args,
)

View File

@ -0,0 +1,74 @@
/* contrib/pageinspect/pageinspect--1.12--1.13.sql */
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
\echo Use "ALTER EXTENSION pageinspect UPDATE TO '1.13'" to load this file. \quit
-- Convert SQL functions to new style
CREATE OR REPLACE FUNCTION heap_page_item_attrs(
IN page bytea,
IN rel_oid regclass,
IN do_detoast bool,
OUT lp smallint,
OUT lp_off smallint,
OUT lp_flags smallint,
OUT lp_len smallint,
OUT t_xmin xid,
OUT t_xmax xid,
OUT t_field3 int4,
OUT t_ctid tid,
OUT t_infomask2 integer,
OUT t_infomask integer,
OUT t_hoff smallint,
OUT t_bits text,
OUT t_oid oid,
OUT t_attrs bytea[]
)
RETURNS SETOF record
LANGUAGE SQL PARALLEL RESTRICTED
BEGIN ATOMIC
SELECT lp,
lp_off,
lp_flags,
lp_len,
t_xmin,
t_xmax,
t_field3,
t_ctid,
t_infomask2,
t_infomask,
t_hoff,
t_bits,
t_oid,
tuple_data_split(
rel_oid::oid,
t_data,
t_infomask,
t_infomask2,
t_bits,
do_detoast)
AS t_attrs
FROM heap_page_items(page);
END;
CREATE OR REPLACE FUNCTION heap_page_item_attrs(IN page bytea, IN rel_oid regclass,
OUT lp smallint,
OUT lp_off smallint,
OUT lp_flags smallint,
OUT lp_len smallint,
OUT t_xmin xid,
OUT t_xmax xid,
OUT t_field3 int4,
OUT t_ctid tid,
OUT t_infomask2 integer,
OUT t_infomask integer,
OUT t_hoff smallint,
OUT t_bits text,
OUT t_oid oid,
OUT t_attrs bytea[]
)
RETURNS SETOF record
LANGUAGE SQL PARALLEL RESTRICTED
BEGIN ATOMIC
SELECT * FROM heap_page_item_attrs(page, rel_oid, false);
END;

View File

@ -1,5 +1,5 @@
# pageinspect extension
comment = 'inspect the contents of database pages at a low level'
default_version = '1.12'
default_version = '1.13'
module_pathname = '$libdir/pageinspect'
relocatable = true