]> granicus.if.org Git - postgresql/commitdiff
Update pageinspect extension for parallel query.
authorRobert Haas <rhaas@postgresql.org>
Thu, 9 Jun 2016 21:18:09 +0000 (17:18 -0400)
committerRobert Haas <rhaas@postgresql.org>
Thu, 9 Jun 2016 21:18:09 +0000 (17:18 -0400)
All functions provided by this extension are PARALLEL SAFE.

Andreas Karlsson

contrib/pageinspect/Makefile
contrib/pageinspect/pageinspect--1.4--1.5.sql [new file with mode: 0644]
contrib/pageinspect/pageinspect--1.5.sql [moved from contrib/pageinspect/pageinspect--1.4.sql with 89% similarity]
contrib/pageinspect/pageinspect.control

index 91ab119d433c16d206e04b2f547f257edf71c031..a98237ecbdd58b6951cd8d235e43585494a6bd56 100644 (file)
@@ -5,9 +5,10 @@ OBJS           = rawpage.o heapfuncs.o btreefuncs.o fsmfuncs.o \
                  brinfuncs.o ginfuncs.o $(WIN32RES)
 
 EXTENSION = pageinspect
-DATA = pageinspect--1.4.sql pageinspect--1.3--1.4.sql \
-       pageinspect--1.2--1.3.sql pageinspect--1.1--1.2.sql \
-       pageinspect--1.0--1.1.sql pageinspect--unpackaged--1.0.sql
+DATA = pageinspect--1.5.sql pageinspect--1.4--1.5.sql \
+       pageinspect--1.3--1.4.sql pageinspect--1.2--1.3.sql \
+       pageinspect--1.1--1.2.sql pageinspect--1.0--1.1.sql \
+       pageinspect--unpackaged--1.0.sql
 PGFILEDESC = "pageinspect - functions to inspect contents of database pages"
 
 ifdef USE_PGXS
diff --git a/contrib/pageinspect/pageinspect--1.4--1.5.sql b/contrib/pageinspect/pageinspect--1.4--1.5.sql
new file mode 100644 (file)
index 0000000..7ed7b54
--- /dev/null
@@ -0,0 +1,24 @@
+/* contrib/pageinspect/pageinspect--1.4--1.5.sql */
+
+-- complain if script is sourced in psql, rather than via ALTER EXTENSION
+\echo Use "ALTER EXTENSION pageinspect UPDATE TO '1.5'" to load this file. \quit
+
+ALTER FUNCTION get_raw_page(text, int4) PARALLEL SAFE;
+ALTER FUNCTION get_raw_page(text, text, int4) PARALLEL SAFE;
+ALTER FUNCTION page_header(bytea) PARALLEL SAFE;
+ALTER FUNCTION heap_page_items(bytea) PARALLEL SAFE;
+ALTER FUNCTION tuple_data_split(oid, bytea, integer, integer, text) PARALLEL SAFE;
+ALTER FUNCTION tuple_data_split(oid, bytea, integer, integer, text, bool) PARALLEL SAFE;
+ALTER FUNCTION heap_page_item_attrs(bytea, regclass, bool) PARALLEL SAFE;
+ALTER FUNCTION heap_page_item_attrs(bytea, regclass) PARALLEL SAFE;
+ALTER FUNCTION bt_metap(text) PARALLEL SAFE;
+ALTER FUNCTION bt_page_stats(text, int4) PARALLEL SAFE;
+ALTER FUNCTION bt_page_items(text, int4) PARALLEL SAFE;
+ALTER FUNCTION brin_page_type(bytea) PARALLEL SAFE;
+ALTER FUNCTION brin_metapage_info(bytea) PARALLEL SAFE;
+ALTER FUNCTION brin_revmap_data(bytea) PARALLEL SAFE;
+ALTER FUNCTION brin_page_items(bytea, regclass) PARALLEL SAFE;
+ALTER FUNCTION fsm_page_contents(bytea) PARALLEL SAFE;
+ALTER FUNCTION gin_metapage_info(bytea) PARALLEL SAFE;
+ALTER FUNCTION gin_page_opaque_info(bytea) PARALLEL SAFE;
+ALTER FUNCTION gin_leafpage_items(bytea) PARALLEL SAFE;
similarity index 89%
rename from contrib/pageinspect/pageinspect--1.4.sql
rename to contrib/pageinspect/pageinspect--1.5.sql
index f75aa0b57f9fb762f2db8d5c517b7a66a0d92511..1e40c3c97e227629c9d22e70444e9d293f50cfb4 100644 (file)
@@ -1,4 +1,4 @@
-/* contrib/pageinspect/pageinspect--1.4.sql */
+/* contrib/pageinspect/pageinspect--1.5.sql */
 
 -- complain if script is sourced in psql, rather than via CREATE EXTENSION
 \echo Use "CREATE EXTENSION pageinspect" to load this file. \quit
@@ -9,12 +9,12 @@
 CREATE FUNCTION get_raw_page(text, int4)
 RETURNS bytea
 AS 'MODULE_PATHNAME', 'get_raw_page'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 CREATE FUNCTION get_raw_page(text, text, int4)
 RETURNS bytea
 AS 'MODULE_PATHNAME', 'get_raw_page_fork'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 --
 -- page_header()
@@ -30,7 +30,7 @@ CREATE FUNCTION page_header(IN page bytea,
     OUT version smallint,
     OUT prune_xid xid)
 AS 'MODULE_PATHNAME', 'page_header'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 --
 -- heap_page_items()
@@ -52,7 +52,7 @@ CREATE FUNCTION heap_page_items(IN page bytea,
     OUT t_data bytea)
 RETURNS SETOF record
 AS 'MODULE_PATHNAME', 'heap_page_items'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 --
 -- tuple_data_split()
@@ -64,7 +64,7 @@ CREATE FUNCTION tuple_data_split(rel_oid oid,
     t_bits text)
 RETURNS bytea[]
 AS 'MODULE_PATHNAME','tuple_data_split'
-LANGUAGE C;
+LANGUAGE C PARALLEL SAFE;
 
 CREATE FUNCTION tuple_data_split(rel_oid oid,
     t_data bytea,
@@ -74,7 +74,7 @@ CREATE FUNCTION tuple_data_split(rel_oid oid,
     do_detoast bool)
 RETURNS bytea[]
 AS 'MODULE_PATHNAME','tuple_data_split'
-LANGUAGE C;
+LANGUAGE C PARALLEL SAFE;
 
 --
 -- heap_page_item_attrs()
@@ -121,7 +121,7 @@ SELECT lp,
          do_detoast)
          AS t_attrs
   FROM heap_page_items(page);
-$$ LANGUAGE SQL;
+$$ LANGUAGE SQL PARALLEL SAFE;
 
 CREATE FUNCTION heap_page_item_attrs(IN page bytea, IN rel_oid regclass,
     OUT lp smallint,
@@ -141,7 +141,7 @@ CREATE FUNCTION heap_page_item_attrs(IN page bytea, IN rel_oid regclass,
     )
 RETURNS SETOF record AS $$
 SELECT * from heap_page_item_attrs(page, rel_oid, false);
-$$ LANGUAGE SQL;
+$$ LANGUAGE SQL PARALLEL SAFE;
 
 --
 -- bt_metap()
@@ -154,7 +154,7 @@ CREATE FUNCTION bt_metap(IN relname text,
     OUT fastroot int4,
     OUT fastlevel int4)
 AS 'MODULE_PATHNAME', 'bt_metap'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 --
 -- bt_page_stats()
@@ -172,7 +172,7 @@ CREATE FUNCTION bt_page_stats(IN relname text, IN blkno int4,
     OUT btpo int4,
     OUT btpo_flags int4)
 AS 'MODULE_PATHNAME', 'bt_page_stats'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 --
 -- bt_page_items()
@@ -186,7 +186,7 @@ CREATE FUNCTION bt_page_items(IN relname text, IN blkno int4,
     OUT data text)
 RETURNS SETOF record
 AS 'MODULE_PATHNAME', 'bt_page_items'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 --
 -- brin_page_type()
@@ -194,7 +194,7 @@ LANGUAGE C STRICT;
 CREATE FUNCTION brin_page_type(IN page bytea)
 RETURNS text
 AS 'MODULE_PATHNAME', 'brin_page_type'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 --
 -- brin_metapage_info()
@@ -202,7 +202,7 @@ LANGUAGE C STRICT;
 CREATE FUNCTION brin_metapage_info(IN page bytea, OUT magic text,
        OUT version integer, OUT pagesperrange integer, OUT lastrevmappage bigint)
 AS 'MODULE_PATHNAME', 'brin_metapage_info'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 --
 -- brin_revmap_data()
@@ -211,7 +211,7 @@ CREATE FUNCTION brin_revmap_data(IN page bytea,
        OUT pages tid)
 RETURNS SETOF tid
 AS 'MODULE_PATHNAME', 'brin_revmap_data'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 --
 -- brin_page_items()
@@ -226,7 +226,7 @@ CREATE FUNCTION brin_page_items(IN page bytea, IN index_oid regclass,
        OUT value text)
 RETURNS SETOF record
 AS 'MODULE_PATHNAME', 'brin_page_items'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 --
 -- fsm_page_contents()
@@ -234,7 +234,7 @@ LANGUAGE C STRICT;
 CREATE FUNCTION fsm_page_contents(IN page bytea)
 RETURNS text
 AS 'MODULE_PATHNAME', 'fsm_page_contents'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 --
 -- GIN functions
@@ -255,7 +255,7 @@ CREATE FUNCTION gin_metapage_info(IN page bytea,
     OUT n_entries bigint,
     OUT version int4)
 AS 'MODULE_PATHNAME', 'gin_metapage_info'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 --
 -- gin_page_opaque_info()
@@ -265,7 +265,7 @@ CREATE FUNCTION gin_page_opaque_info(IN page bytea,
     OUT maxoff int4,
     OUT flags text[])
 AS 'MODULE_PATHNAME', 'gin_page_opaque_info'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
 
 --
 -- gin_leafpage_items()
@@ -276,4 +276,4 @@ CREATE FUNCTION gin_leafpage_items(IN page bytea,
     OUT tids tid[])
 RETURNS SETOF record
 AS 'MODULE_PATHNAME', 'gin_leafpage_items'
-LANGUAGE C STRICT;
+LANGUAGE C STRICT PARALLEL SAFE;
index 68c7d6118290503c9d15e36d567a2278efac0939..23c8eff9cd7dde9065eb9909a5ed98100e8061cc 100644 (file)
@@ -1,5 +1,5 @@
 # pageinspect extension
 comment = 'inspect the contents of database pages at a low level'
-default_version = '1.4'
+default_version = '1.5'
 module_pathname = '$libdir/pageinspect'
 relocatable = true