Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit e3b607c

Browse files
committed
Update pageinspect extension for parallel query.
All functions provided by this extension are PARALLEL SAFE. Andreas Karlsson
1 parent 749a787 commit e3b607c

File tree

4 files changed

+49
-24
lines changed

4 files changed

+49
-24
lines changed

contrib/pageinspect/Makefile

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ OBJS = rawpage.o heapfuncs.o btreefuncs.o fsmfuncs.o \
55
brinfuncs.o ginfuncs.o $(WIN32RES)
66

77
EXTENSION = pageinspect
8-
DATA = pageinspect--1.4.sql pageinspect--1.3--1.4.sql \
9-
pageinspect--1.2--1.3.sql pageinspect--1.1--1.2.sql \
10-
pageinspect--1.0--1.1.sql pageinspect--unpackaged--1.0.sql
8+
DATA = pageinspect--1.5.sql pageinspect--1.4--1.5.sql \
9+
pageinspect--1.3--1.4.sql pageinspect--1.2--1.3.sql \
10+
pageinspect--1.1--1.2.sql pageinspect--1.0--1.1.sql \
11+
pageinspect--unpackaged--1.0.sql
1112
PGFILEDESC = "pageinspect - functions to inspect contents of database pages"
1213

1314
ifdef USE_PGXS
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/* contrib/pageinspect/pageinspect--1.4--1.5.sql */
2+
3+
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
4+
\echo Use "ALTER EXTENSION pageinspect UPDATE TO '1.5'" to load this file. \quit
5+
6+
ALTER FUNCTION get_raw_page(text, int4) PARALLEL SAFE;
7+
ALTER FUNCTION get_raw_page(text, text, int4) PARALLEL SAFE;
8+
ALTER FUNCTION page_header(bytea) PARALLEL SAFE;
9+
ALTER FUNCTION heap_page_items(bytea) PARALLEL SAFE;
10+
ALTER FUNCTION tuple_data_split(oid, bytea, integer, integer, text) PARALLEL SAFE;
11+
ALTER FUNCTION tuple_data_split(oid, bytea, integer, integer, text, bool) PARALLEL SAFE;
12+
ALTER FUNCTION heap_page_item_attrs(bytea, regclass, bool) PARALLEL SAFE;
13+
ALTER FUNCTION heap_page_item_attrs(bytea, regclass) PARALLEL SAFE;
14+
ALTER FUNCTION bt_metap(text) PARALLEL SAFE;
15+
ALTER FUNCTION bt_page_stats(text, int4) PARALLEL SAFE;
16+
ALTER FUNCTION bt_page_items(text, int4) PARALLEL SAFE;
17+
ALTER FUNCTION brin_page_type(bytea) PARALLEL SAFE;
18+
ALTER FUNCTION brin_metapage_info(bytea) PARALLEL SAFE;
19+
ALTER FUNCTION brin_revmap_data(bytea) PARALLEL SAFE;
20+
ALTER FUNCTION brin_page_items(bytea, regclass) PARALLEL SAFE;
21+
ALTER FUNCTION fsm_page_contents(bytea) PARALLEL SAFE;
22+
ALTER FUNCTION gin_metapage_info(bytea) PARALLEL SAFE;
23+
ALTER FUNCTION gin_page_opaque_info(bytea) PARALLEL SAFE;
24+
ALTER FUNCTION gin_leafpage_items(bytea) PARALLEL SAFE;

contrib/pageinspect/pageinspect--1.4.sql renamed to contrib/pageinspect/pageinspect--1.5.sql

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* contrib/pageinspect/pageinspect--1.4.sql */
1+
/* contrib/pageinspect/pageinspect--1.5.sql */
22

33
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
44
\echo Use "CREATE EXTENSION pageinspect" to load this file. \quit
@@ -9,12 +9,12 @@
99
CREATE FUNCTION get_raw_page(text, int4)
1010
RETURNS bytea
1111
AS 'MODULE_PATHNAME', 'get_raw_page'
12-
LANGUAGE C STRICT;
12+
LANGUAGE C STRICT PARALLEL SAFE;
1313

1414
CREATE FUNCTION get_raw_page(text, text, int4)
1515
RETURNS bytea
1616
AS 'MODULE_PATHNAME', 'get_raw_page_fork'
17-
LANGUAGE C STRICT;
17+
LANGUAGE C STRICT PARALLEL SAFE;
1818

1919
--
2020
-- page_header()
@@ -30,7 +30,7 @@ CREATE FUNCTION page_header(IN page bytea,
3030
OUT version smallint,
3131
OUT prune_xid xid)
3232
AS 'MODULE_PATHNAME', 'page_header'
33-
LANGUAGE C STRICT;
33+
LANGUAGE C STRICT PARALLEL SAFE;
3434

3535
--
3636
-- heap_page_items()
@@ -52,7 +52,7 @@ CREATE FUNCTION heap_page_items(IN page bytea,
5252
OUT t_data bytea)
5353
RETURNS SETOF record
5454
AS 'MODULE_PATHNAME', 'heap_page_items'
55-
LANGUAGE C STRICT;
55+
LANGUAGE C STRICT PARALLEL SAFE;
5656

5757
--
5858
-- tuple_data_split()
@@ -64,7 +64,7 @@ CREATE FUNCTION tuple_data_split(rel_oid oid,
6464
t_bits text)
6565
RETURNS bytea[]
6666
AS 'MODULE_PATHNAME','tuple_data_split'
67-
LANGUAGE C;
67+
LANGUAGE C PARALLEL SAFE;
6868

6969
CREATE FUNCTION tuple_data_split(rel_oid oid,
7070
t_data bytea,
@@ -74,7 +74,7 @@ CREATE FUNCTION tuple_data_split(rel_oid oid,
7474
do_detoast bool)
7575
RETURNS bytea[]
7676
AS 'MODULE_PATHNAME','tuple_data_split'
77-
LANGUAGE C;
77+
LANGUAGE C PARALLEL SAFE;
7878

7979
--
8080
-- heap_page_item_attrs()
@@ -121,7 +121,7 @@ SELECT lp,
121121
do_detoast)
122122
AS t_attrs
123123
FROM heap_page_items(page);
124-
$$ LANGUAGE SQL;
124+
$$ LANGUAGE SQL PARALLEL SAFE;
125125

126126
CREATE FUNCTION heap_page_item_attrs(IN page bytea, IN rel_oid regclass,
127127
OUT lp smallint,
@@ -141,7 +141,7 @@ CREATE FUNCTION heap_page_item_attrs(IN page bytea, IN rel_oid regclass,
141141
)
142142
RETURNS SETOF record AS $$
143143
SELECT * from heap_page_item_attrs(page, rel_oid, false);
144-
$$ LANGUAGE SQL;
144+
$$ LANGUAGE SQL PARALLEL SAFE;
145145

146146
--
147147
-- bt_metap()
@@ -154,7 +154,7 @@ CREATE FUNCTION bt_metap(IN relname text,
154154
OUT fastroot int4,
155155
OUT fastlevel int4)
156156
AS 'MODULE_PATHNAME', 'bt_metap'
157-
LANGUAGE C STRICT;
157+
LANGUAGE C STRICT PARALLEL SAFE;
158158

159159
--
160160
-- bt_page_stats()
@@ -172,7 +172,7 @@ CREATE FUNCTION bt_page_stats(IN relname text, IN blkno int4,
172172
OUT btpo int4,
173173
OUT btpo_flags int4)
174174
AS 'MODULE_PATHNAME', 'bt_page_stats'
175-
LANGUAGE C STRICT;
175+
LANGUAGE C STRICT PARALLEL SAFE;
176176

177177
--
178178
-- bt_page_items()
@@ -186,23 +186,23 @@ CREATE FUNCTION bt_page_items(IN relname text, IN blkno int4,
186186
OUT data text)
187187
RETURNS SETOF record
188188
AS 'MODULE_PATHNAME', 'bt_page_items'
189-
LANGUAGE C STRICT;
189+
LANGUAGE C STRICT PARALLEL SAFE;
190190

191191
--
192192
-- brin_page_type()
193193
--
194194
CREATE FUNCTION brin_page_type(IN page bytea)
195195
RETURNS text
196196
AS 'MODULE_PATHNAME', 'brin_page_type'
197-
LANGUAGE C STRICT;
197+
LANGUAGE C STRICT PARALLEL SAFE;
198198

199199
--
200200
-- brin_metapage_info()
201201
--
202202
CREATE FUNCTION brin_metapage_info(IN page bytea, OUT magic text,
203203
OUT version integer, OUT pagesperrange integer, OUT lastrevmappage bigint)
204204
AS 'MODULE_PATHNAME', 'brin_metapage_info'
205-
LANGUAGE C STRICT;
205+
LANGUAGE C STRICT PARALLEL SAFE;
206206

207207
--
208208
-- brin_revmap_data()
@@ -211,7 +211,7 @@ CREATE FUNCTION brin_revmap_data(IN page bytea,
211211
OUT pages tid)
212212
RETURNS SETOF tid
213213
AS 'MODULE_PATHNAME', 'brin_revmap_data'
214-
LANGUAGE C STRICT;
214+
LANGUAGE C STRICT PARALLEL SAFE;
215215

216216
--
217217
-- brin_page_items()
@@ -226,15 +226,15 @@ CREATE FUNCTION brin_page_items(IN page bytea, IN index_oid regclass,
226226
OUT value text)
227227
RETURNS SETOF record
228228
AS 'MODULE_PATHNAME', 'brin_page_items'
229-
LANGUAGE C STRICT;
229+
LANGUAGE C STRICT PARALLEL SAFE;
230230

231231
--
232232
-- fsm_page_contents()
233233
--
234234
CREATE FUNCTION fsm_page_contents(IN page bytea)
235235
RETURNS text
236236
AS 'MODULE_PATHNAME', 'fsm_page_contents'
237-
LANGUAGE C STRICT;
237+
LANGUAGE C STRICT PARALLEL SAFE;
238238

239239
--
240240
-- GIN functions
@@ -255,7 +255,7 @@ CREATE FUNCTION gin_metapage_info(IN page bytea,
255255
OUT n_entries bigint,
256256
OUT version int4)
257257
AS 'MODULE_PATHNAME', 'gin_metapage_info'
258-
LANGUAGE C STRICT;
258+
LANGUAGE C STRICT PARALLEL SAFE;
259259

260260
--
261261
-- gin_page_opaque_info()
@@ -265,7 +265,7 @@ CREATE FUNCTION gin_page_opaque_info(IN page bytea,
265265
OUT maxoff int4,
266266
OUT flags text[])
267267
AS 'MODULE_PATHNAME', 'gin_page_opaque_info'
268-
LANGUAGE C STRICT;
268+
LANGUAGE C STRICT PARALLEL SAFE;
269269

270270
--
271271
-- gin_leafpage_items()
@@ -276,4 +276,4 @@ CREATE FUNCTION gin_leafpage_items(IN page bytea,
276276
OUT tids tid[])
277277
RETURNS SETOF record
278278
AS 'MODULE_PATHNAME', 'gin_leafpage_items'
279-
LANGUAGE C STRICT;
279+
LANGUAGE C STRICT PARALLEL SAFE;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# pageinspect extension
22
comment = 'inspect the contents of database pages at a low level'
3-
default_version = '1.4'
3+
default_version = '1.5'
44
module_pathname = '$libdir/pageinspect'
55
relocatable = true

0 commit comments

Comments
 (0)