/usr/share/postgresql/10/extension/pageinspect--1.3--1.4.sql is in postgresql-10 10.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | /* contrib/pageinspect/pageinspect--1.3--1.4.sql */
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
\echo Use "ALTER EXTENSION pageinspect UPDATE TO '1.4'" to load this file. \quit
--
-- heap_page_items()
--
DROP FUNCTION heap_page_items(bytea);
CREATE FUNCTION heap_page_items(IN page bytea,
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_data bytea)
RETURNS SETOF record
AS 'MODULE_PATHNAME', 'heap_page_items'
LANGUAGE C STRICT;
--
-- tuple_data_split()
--
CREATE FUNCTION tuple_data_split(rel_oid oid,
t_data bytea,
t_infomask integer,
t_infomask2 integer,
t_bits text)
RETURNS bytea[]
AS 'MODULE_PATHNAME','tuple_data_split'
LANGUAGE C;
CREATE FUNCTION tuple_data_split(rel_oid oid,
t_data bytea,
t_infomask integer,
t_infomask2 integer,
t_bits text,
do_detoast bool)
RETURNS bytea[]
AS 'MODULE_PATHNAME','tuple_data_split'
LANGUAGE C;
--
-- heap_page_item_attrs()
--
CREATE 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 AS $$
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,
t_data,
t_infomask,
t_infomask2,
t_bits,
do_detoast)
AS t_attrs
FROM heap_page_items(page);
$$ LANGUAGE SQL;
CREATE 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 AS $$
SELECT * from heap_page_item_attrs(page, rel_oid, false);
$$ LANGUAGE SQL;
|