summaryrefslogtreecommitdiff
path: root/contrib/pageinspect/pageinspect.sql.in
diff options
context:
space:
mode:
authorTom Lane2007-08-26 23:22:49 +0000
committerTom Lane2007-08-26 23:22:49 +0000
commit08fc73c4c3ca3731d5ef77859fe5146df0ca5044 (patch)
tree90e790d5c507e09c7db1c31089210d9adee2b60d /contrib/pageinspect/pageinspect.sql.in
parent67bf7b919eddf9bd9ddc9e2d8f2dc7ca3bbfd3a2 (diff)
Code review for btreefuncs additions: restrict to superusers to avoid
exposing user data to others, and clean up usage of deprecated APIs.
Diffstat (limited to 'contrib/pageinspect/pageinspect.sql.in')
-rw-r--r--contrib/pageinspect/pageinspect.sql.in126
1 files changed, 54 insertions, 72 deletions
diff --git a/contrib/pageinspect/pageinspect.sql.in b/contrib/pageinspect/pageinspect.sql.in
index 3bd2825f223..40b75dcbc02 100644
--- a/contrib/pageinspect/pageinspect.sql.in
+++ b/contrib/pageinspect/pageinspect.sql.in
@@ -12,98 +12,80 @@ LANGUAGE C STRICT;
--
-- page_header()
--
-CREATE TYPE page_header_type AS (
- lsn text,
- tli smallint,
- flags smallint,
- lower smallint,
- upper smallint,
- special smallint,
- pagesize smallint,
- version smallint
-);
-
-CREATE OR REPLACE FUNCTION page_header(bytea)
-RETURNS page_header_type
+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)
AS 'MODULE_PATHNAME', 'page_header'
LANGUAGE C STRICT;
--
-- heap_page_items()
--
-CREATE TYPE heap_page_items_type AS (
- lp smallint,
- lp_off smallint,
- lp_flags smallint,
- lp_len smallint,
- t_xmin xid,
- t_xmax xid,
- t_field3 int4,
- t_ctid tid,
- t_infomask2 smallint,
- t_infomask smallint,
- t_hoff smallint,
- t_bits text,
- t_oid oid
-);
-
-CREATE OR REPLACE FUNCTION heap_page_items(bytea)
-RETURNS SETOF heap_page_items_type
+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 TYPE bt_metap_type AS (
- magic int4,
- version int4,
- root int4,
- level int4,
- fastroot int4,
- fastlevel int4
-);
-
-CREATE OR REPLACE FUNCTION bt_metap(text)
-RETURNS bt_metap_type
+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;
+LANGUAGE C STRICT;
--
-- bt_page_stats()
--
-CREATE TYPE bt_page_stats_type AS (
- blkno int4,
- type char,
- live_items int4,
- dead_items int4,
- avg_item_size float,
- page_size int4,
- free_size int4,
- btpo_prev int4,
- btpo_next int4,
- btpo int4,
- btpo_flags int4
-);
-
-CREATE OR REPLACE FUNCTION bt_page_stats(text, int4)
-RETURNS bt_page_stats_type
+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;
+LANGUAGE C STRICT;
--
-- bt_page_items()
--
-CREATE TYPE bt_page_items_type AS (
- itemoffset smallint,
- ctid tid,
- itemlen smallint,
- nulls bool,
- vars bool,
- data text
-);
-
-CREATE OR REPLACE FUNCTION bt_page_items(text, int4)
-RETURNS SETOF bt_page_items_type
+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;
+LANGUAGE C STRICT;