From 629b3af27d5c2bc9d6e16b22b943ad651d4ecb56 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 13 Feb 2011 20:06:41 -0500 Subject: Convert contrib modules to use the extension facility. 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 --- contrib/pageinspect/.gitignore | 1 - contrib/pageinspect/Makefile | 11 +-- contrib/pageinspect/pageinspect--1.0.sql | 104 ++++++++++++++++++++ .../pageinspect/pageinspect--unpackaged--1.0.sql | 10 ++ contrib/pageinspect/pageinspect.control | 5 + contrib/pageinspect/pageinspect.sql.in | 107 --------------------- contrib/pageinspect/uninstall_pageinspect.sql | 13 --- 7 files changed, 122 insertions(+), 129 deletions(-) delete mode 100644 contrib/pageinspect/.gitignore create mode 100644 contrib/pageinspect/pageinspect--1.0.sql create mode 100644 contrib/pageinspect/pageinspect--unpackaged--1.0.sql create mode 100644 contrib/pageinspect/pageinspect.control delete mode 100644 contrib/pageinspect/pageinspect.sql.in delete mode 100644 contrib/pageinspect/uninstall_pageinspect.sql (limited to 'contrib/pageinspect') diff --git a/contrib/pageinspect/.gitignore b/contrib/pageinspect/.gitignore deleted file mode 100644 index fad166aaee8..00000000000 --- a/contrib/pageinspect/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/pageinspect.sql diff --git a/contrib/pageinspect/Makefile b/contrib/pageinspect/Makefile index a8ae51dfd1e..13ba6d39111 100644 --- a/contrib/pageinspect/Makefile +++ b/contrib/pageinspect/Makefile @@ -1,15 +1,10 @@ -#------------------------------------------------------------------------- -# -# pageinspect Makefile -# # contrib/pageinspect/Makefile -# -#------------------------------------------------------------------------- MODULE_big = pageinspect OBJS = rawpage.o heapfuncs.o btreefuncs.o fsmfuncs.o -DATA_built = pageinspect.sql -DATA = uninstall_pageinspect.sql + +EXTENSION = pageinspect +DATA = pageinspect--1.0.sql pageinspect--unpackaged--1.0.sql ifdef USE_PGXS PG_CONFIG = pg_config diff --git a/contrib/pageinspect/pageinspect--1.0.sql b/contrib/pageinspect/pageinspect--1.0.sql new file mode 100644 index 00000000000..b6e46063ba2 --- /dev/null +++ b/contrib/pageinspect/pageinspect--1.0.sql @@ -0,0 +1,104 @@ +/* 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; diff --git a/contrib/pageinspect/pageinspect--unpackaged--1.0.sql b/contrib/pageinspect/pageinspect--unpackaged--1.0.sql new file mode 100644 index 00000000000..a9d1b52a426 --- /dev/null +++ b/contrib/pageinspect/pageinspect--unpackaged--1.0.sql @@ -0,0 +1,10 @@ +/* contrib/pageinspect/pageinspect--unpackaged--1.0.sql */ + +ALTER EXTENSION pageinspect ADD function get_raw_page(text,integer); +ALTER EXTENSION pageinspect ADD function get_raw_page(text,text,integer); +ALTER EXTENSION pageinspect ADD function page_header(bytea); +ALTER EXTENSION pageinspect ADD function heap_page_items(bytea); +ALTER EXTENSION pageinspect ADD function bt_metap(text); +ALTER EXTENSION pageinspect ADD function bt_page_stats(text,integer); +ALTER EXTENSION pageinspect ADD function bt_page_items(text,integer); +ALTER EXTENSION pageinspect ADD function fsm_page_contents(bytea); diff --git a/contrib/pageinspect/pageinspect.control b/contrib/pageinspect/pageinspect.control new file mode 100644 index 00000000000..f9da0e86edc --- /dev/null +++ b/contrib/pageinspect/pageinspect.control @@ -0,0 +1,5 @@ +# pageinspect extension +comment = 'inspect the contents of database pages at a low level' +default_version = '1.0' +module_pathname = '$libdir/pageinspect' +relocatable = true diff --git a/contrib/pageinspect/pageinspect.sql.in b/contrib/pageinspect/pageinspect.sql.in deleted file mode 100644 index d6058d409f3..00000000000 --- a/contrib/pageinspect/pageinspect.sql.in +++ /dev/null @@ -1,107 +0,0 @@ -/* contrib/pageinspect/pageinspect.sql.in */ - --- Adjust this setting to control where the objects get created. -SET search_path = public; - --- --- 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; diff --git a/contrib/pageinspect/uninstall_pageinspect.sql b/contrib/pageinspect/uninstall_pageinspect.sql deleted file mode 100644 index a980fd7d01e..00000000000 --- a/contrib/pageinspect/uninstall_pageinspect.sql +++ /dev/null @@ -1,13 +0,0 @@ -/* contrib/pageinspect/uninstall_pageinspect.sql */ - --- Adjust this setting to control where the objects get dropped. -SET search_path = public; - -DROP FUNCTION get_raw_page(text, int4); -DROP FUNCTION get_raw_page(text, text, int4); -DROP FUNCTION page_header(bytea); -DROP FUNCTION heap_page_items(bytea); -DROP FUNCTION bt_metap(text); -DROP FUNCTION bt_page_stats(text, int4); -DROP FUNCTION bt_page_items(text, int4); -DROP FUNCTION fsm_page_contents(bytea); -- cgit v1.2.3