mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-21 16:13:23 +02:00
This isn't fully tested as yet, in particular I'm not sure that the "foo--unpackaged--1.0.sql" scripts are OK. But it's time to get some buildfarm cycles on it. sepgsql is not converted to an extension, mainly because it seems to require a very nonstandard installation process. Dimitri Fontaine and Tom Lane
105 lines
2.2 KiB
SQL
105 lines
2.2 KiB
SQL
/* contrib/pageinspect/pageinspect--1.0.sql */
|
|
|
|
--
|
|
-- get_raw_page()
|
|
--
|
|
CREATE OR REPLACE FUNCTION get_raw_page(text, int4)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'get_raw_page'
|
|
LANGUAGE C STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION get_raw_page(text, text, int4)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'get_raw_page_fork'
|
|
LANGUAGE C STRICT;
|
|
|
|
--
|
|
-- page_header()
|
|
--
|
|
CREATE OR REPLACE FUNCTION page_header(IN page bytea,
|
|
OUT lsn text,
|
|
OUT tli smallint,
|
|
OUT flags smallint,
|
|
OUT lower smallint,
|
|
OUT upper smallint,
|
|
OUT special smallint,
|
|
OUT pagesize smallint,
|
|
OUT version smallint,
|
|
OUT prune_xid xid)
|
|
AS 'MODULE_PATHNAME', 'page_header'
|
|
LANGUAGE C STRICT;
|
|
|
|
--
|
|
-- heap_page_items()
|
|
--
|
|
CREATE OR REPLACE 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 smallint,
|
|
OUT t_infomask smallint,
|
|
OUT t_hoff smallint,
|
|
OUT t_bits text,
|
|
OUT t_oid oid)
|
|
RETURNS SETOF record
|
|
AS 'MODULE_PATHNAME', 'heap_page_items'
|
|
LANGUAGE C STRICT;
|
|
|
|
--
|
|
-- bt_metap()
|
|
--
|
|
CREATE OR REPLACE FUNCTION bt_metap(IN relname text,
|
|
OUT magic int4,
|
|
OUT version int4,
|
|
OUT root int4,
|
|
OUT level int4,
|
|
OUT fastroot int4,
|
|
OUT fastlevel int4)
|
|
AS 'MODULE_PATHNAME', 'bt_metap'
|
|
LANGUAGE C STRICT;
|
|
|
|
--
|
|
-- bt_page_stats()
|
|
--
|
|
CREATE OR REPLACE FUNCTION bt_page_stats(IN relname text, IN blkno int4,
|
|
OUT blkno int4,
|
|
OUT type "char",
|
|
OUT live_items int4,
|
|
OUT dead_items int4,
|
|
OUT avg_item_size int4,
|
|
OUT page_size int4,
|
|
OUT free_size int4,
|
|
OUT btpo_prev int4,
|
|
OUT btpo_next int4,
|
|
OUT btpo int4,
|
|
OUT btpo_flags int4)
|
|
AS 'MODULE_PATHNAME', 'bt_page_stats'
|
|
LANGUAGE C STRICT;
|
|
|
|
--
|
|
-- bt_page_items()
|
|
--
|
|
CREATE OR REPLACE FUNCTION bt_page_items(IN relname text, IN blkno int4,
|
|
OUT itemoffset smallint,
|
|
OUT ctid tid,
|
|
OUT itemlen smallint,
|
|
OUT nulls bool,
|
|
OUT vars bool,
|
|
OUT data text)
|
|
RETURNS SETOF record
|
|
AS 'MODULE_PATHNAME', 'bt_page_items'
|
|
LANGUAGE C STRICT;
|
|
|
|
--
|
|
-- fsm_page_contents()
|
|
--
|
|
CREATE OR REPLACE FUNCTION fsm_page_contents(IN page bytea)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME', 'fsm_page_contents'
|
|
LANGUAGE C STRICT;
|