Skip to content

Commit 0dbf3ce

Browse files
committed
Update pgcrypto extension for parallel query.
All functions provided by this extension are PARALLEL SAFE. Andreas Karlsson
1 parent 06d7fd6 commit 0dbf3ce

File tree

4 files changed

+80
-39
lines changed

4 files changed

+80
-39
lines changed

contrib/pgcrypto/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ MODULE_big = pgcrypto
2626
OBJS = $(SRCS:.c=.o) $(WIN32RES)
2727

2828
EXTENSION = pgcrypto
29-
DATA = pgcrypto--1.2.sql pgcrypto--1.1--1.2.sql pgcrypto--1.0--1.1.sql \
30-
pgcrypto--unpackaged--1.0.sql
29+
DATA = pgcrypto--1.3.sql pgcrypto--1.2--1.3.sql pgcrypto--1.1--1.2.sql \
30+
pgcrypto--1.0--1.1.sql pgcrypto--unpackaged--1.0.sql
3131
PGFILEDESC = "pgcrypto - cryptographic functions"
3232

3333
REGRESS = init md5 sha1 hmac-md5 hmac-sha1 blowfish rijndael \
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/* contrib/pgcrypto/pgcrypto--1.2--1.3.sql */
2+
3+
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
4+
\echo Use "ALTER EXTENSION pgcrypto UPDATE TO '1.3'" to load this file. \quit
5+
6+
ALTER FUNCTION digest(text, text) PARALLEL SAFE;
7+
ALTER FUNCTION digest(bytea, text) PARALLEL SAFE;
8+
ALTER FUNCTION hmac(text, text, text) PARALLEL SAFE;
9+
ALTER FUNCTION hmac(bytea, bytea, text) PARALLEL SAFE;
10+
ALTER FUNCTION crypt(text, text) PARALLEL SAFE;
11+
ALTER FUNCTION gen_salt(text) PARALLEL SAFE;
12+
ALTER FUNCTION gen_salt(text, int4) PARALLEL SAFE;
13+
ALTER FUNCTION encrypt(bytea, bytea, text) PARALLEL SAFE;
14+
ALTER FUNCTION decrypt(bytea, bytea, text) PARALLEL SAFE;
15+
ALTER FUNCTION encrypt_iv(bytea, bytea, bytea, text) PARALLEL SAFE;
16+
ALTER FUNCTION decrypt_iv(bytea, bytea, bytea, text) PARALLEL SAFE;
17+
ALTER FUNCTION gen_random_bytes(int4) PARALLEL SAFE;
18+
ALTER FUNCTION gen_random_uuid() PARALLEL SAFE;
19+
ALTER FUNCTION pgp_sym_encrypt(text, text) PARALLEL SAFE;
20+
ALTER FUNCTION pgp_sym_encrypt_bytea(bytea, text) PARALLEL SAFE;
21+
ALTER FUNCTION pgp_sym_encrypt(text, text, text) PARALLEL SAFE;
22+
ALTER FUNCTION pgp_sym_encrypt_bytea(bytea, text, text) PARALLEL SAFE;
23+
ALTER FUNCTION pgp_sym_decrypt(bytea, text) PARALLEL SAFE;
24+
ALTER FUNCTION pgp_sym_decrypt_bytea(bytea, text) PARALLEL SAFE;
25+
ALTER FUNCTION pgp_sym_decrypt(bytea, text, text) PARALLEL SAFE;
26+
ALTER FUNCTION pgp_sym_decrypt_bytea(bytea, text, text) PARALLEL SAFE;
27+
ALTER FUNCTION pgp_pub_encrypt(text, bytea) PARALLEL SAFE;
28+
ALTER FUNCTION pgp_pub_encrypt_bytea(bytea, bytea) PARALLEL SAFE;
29+
ALTER FUNCTION pgp_pub_encrypt(text, bytea, text) PARALLEL SAFE;
30+
ALTER FUNCTION pgp_pub_encrypt_bytea(bytea, bytea, text) PARALLEL SAFE;
31+
ALTER FUNCTION pgp_pub_decrypt(bytea, bytea) PARALLEL SAFE;
32+
ALTER FUNCTION pgp_pub_decrypt_bytea(bytea, bytea) PARALLEL SAFE;
33+
ALTER FUNCTION pgp_pub_decrypt(bytea, bytea, text) PARALLEL SAFE;
34+
ALTER FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text) PARALLEL SAFE;
35+
ALTER FUNCTION pgp_pub_decrypt(bytea, bytea, text, text) PARALLEL SAFE;
36+
ALTER FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text, text) PARALLEL SAFE;
37+
ALTER FUNCTION pgp_key_id(bytea) PARALLEL SAFE;
38+
ALTER FUNCTION armor(bytea) PARALLEL SAFE;
39+
ALTER FUNCTION armor(bytea, text[], text[]) PARALLEL SAFE;
40+
ALTER FUNCTION dearmor(text) PARALLEL SAFE;
41+
ALTER FUNCTION pgp_armor_headers(text) PARALLEL SAFE;

contrib/pgcrypto/pgcrypto--1.2.sql renamed to contrib/pgcrypto/pgcrypto--1.3.sql

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -6,212 +6,212 @@
66
CREATE FUNCTION digest(text, text)
77
RETURNS bytea
88
AS 'MODULE_PATHNAME', 'pg_digest'
9-
LANGUAGE C IMMUTABLE STRICT;
9+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
1010

1111
CREATE FUNCTION digest(bytea, text)
1212
RETURNS bytea
1313
AS 'MODULE_PATHNAME', 'pg_digest'
14-
LANGUAGE C IMMUTABLE STRICT;
14+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
1515

1616
CREATE FUNCTION hmac(text, text, text)
1717
RETURNS bytea
1818
AS 'MODULE_PATHNAME', 'pg_hmac'
19-
LANGUAGE C IMMUTABLE STRICT;
19+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
2020

2121
CREATE FUNCTION hmac(bytea, bytea, text)
2222
RETURNS bytea
2323
AS 'MODULE_PATHNAME', 'pg_hmac'
24-
LANGUAGE C IMMUTABLE STRICT;
24+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
2525

2626
CREATE FUNCTION crypt(text, text)
2727
RETURNS text
2828
AS 'MODULE_PATHNAME', 'pg_crypt'
29-
LANGUAGE C IMMUTABLE STRICT;
29+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
3030

3131
CREATE FUNCTION gen_salt(text)
3232
RETURNS text
3333
AS 'MODULE_PATHNAME', 'pg_gen_salt'
34-
LANGUAGE C VOLATILE STRICT;
34+
LANGUAGE C VOLATILE STRICT PARALLEL SAFE;
3535

3636
CREATE FUNCTION gen_salt(text, int4)
3737
RETURNS text
3838
AS 'MODULE_PATHNAME', 'pg_gen_salt_rounds'
39-
LANGUAGE C VOLATILE STRICT;
39+
LANGUAGE C VOLATILE STRICT PARALLEL SAFE;
4040

4141
CREATE FUNCTION encrypt(bytea, bytea, text)
4242
RETURNS bytea
4343
AS 'MODULE_PATHNAME', 'pg_encrypt'
44-
LANGUAGE C IMMUTABLE STRICT;
44+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
4545

4646
CREATE FUNCTION decrypt(bytea, bytea, text)
4747
RETURNS bytea
4848
AS 'MODULE_PATHNAME', 'pg_decrypt'
49-
LANGUAGE C IMMUTABLE STRICT;
49+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
5050

5151
CREATE FUNCTION encrypt_iv(bytea, bytea, bytea, text)
5252
RETURNS bytea
5353
AS 'MODULE_PATHNAME', 'pg_encrypt_iv'
54-
LANGUAGE C IMMUTABLE STRICT;
54+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
5555

5656
CREATE FUNCTION decrypt_iv(bytea, bytea, bytea, text)
5757
RETURNS bytea
5858
AS 'MODULE_PATHNAME', 'pg_decrypt_iv'
59-
LANGUAGE C IMMUTABLE STRICT;
59+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
6060

6161
CREATE FUNCTION gen_random_bytes(int4)
6262
RETURNS bytea
6363
AS 'MODULE_PATHNAME', 'pg_random_bytes'
64-
LANGUAGE C VOLATILE STRICT;
64+
LANGUAGE C VOLATILE STRICT PARALLEL SAFE;
6565

6666
CREATE FUNCTION gen_random_uuid()
6767
RETURNS uuid
6868
AS 'MODULE_PATHNAME', 'pg_random_uuid'
69-
LANGUAGE C VOLATILE;
69+
LANGUAGE C VOLATILE PARALLEL SAFE;
7070

7171
--
7272
-- pgp_sym_encrypt(data, key)
7373
--
7474
CREATE FUNCTION pgp_sym_encrypt(text, text)
7575
RETURNS bytea
7676
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_text'
77-
LANGUAGE C STRICT;
77+
LANGUAGE C STRICT PARALLEL SAFE;
7878

7979
CREATE FUNCTION pgp_sym_encrypt_bytea(bytea, text)
8080
RETURNS bytea
8181
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_bytea'
82-
LANGUAGE C STRICT;
82+
LANGUAGE C STRICT PARALLEL SAFE;
8383

8484
--
8585
-- pgp_sym_encrypt(data, key, args)
8686
--
8787
CREATE FUNCTION pgp_sym_encrypt(text, text, text)
8888
RETURNS bytea
8989
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_text'
90-
LANGUAGE C STRICT;
90+
LANGUAGE C STRICT PARALLEL SAFE;
9191

9292
CREATE FUNCTION pgp_sym_encrypt_bytea(bytea, text, text)
9393
RETURNS bytea
9494
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_bytea'
95-
LANGUAGE C STRICT;
95+
LANGUAGE C STRICT PARALLEL SAFE;
9696

9797
--
9898
-- pgp_sym_decrypt(data, key)
9999
--
100100
CREATE FUNCTION pgp_sym_decrypt(bytea, text)
101101
RETURNS text
102102
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_text'
103-
LANGUAGE C IMMUTABLE STRICT;
103+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
104104

105105
CREATE FUNCTION pgp_sym_decrypt_bytea(bytea, text)
106106
RETURNS bytea
107107
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_bytea'
108-
LANGUAGE C IMMUTABLE STRICT;
108+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
109109

110110
--
111111
-- pgp_sym_decrypt(data, key, args)
112112
--
113113
CREATE FUNCTION pgp_sym_decrypt(bytea, text, text)
114114
RETURNS text
115115
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_text'
116-
LANGUAGE C IMMUTABLE STRICT;
116+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
117117

118118
CREATE FUNCTION pgp_sym_decrypt_bytea(bytea, text, text)
119119
RETURNS bytea
120120
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_bytea'
121-
LANGUAGE C IMMUTABLE STRICT;
121+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
122122

123123
--
124124
-- pgp_pub_encrypt(data, key)
125125
--
126126
CREATE FUNCTION pgp_pub_encrypt(text, bytea)
127127
RETURNS bytea
128128
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_text'
129-
LANGUAGE C STRICT;
129+
LANGUAGE C STRICT PARALLEL SAFE;
130130

131131
CREATE FUNCTION pgp_pub_encrypt_bytea(bytea, bytea)
132132
RETURNS bytea
133133
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_bytea'
134-
LANGUAGE C STRICT;
134+
LANGUAGE C STRICT PARALLEL SAFE;
135135

136136
--
137137
-- pgp_pub_encrypt(data, key, args)
138138
--
139139
CREATE FUNCTION pgp_pub_encrypt(text, bytea, text)
140140
RETURNS bytea
141141
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_text'
142-
LANGUAGE C STRICT;
142+
LANGUAGE C STRICT PARALLEL SAFE;
143143

144144
CREATE FUNCTION pgp_pub_encrypt_bytea(bytea, bytea, text)
145145
RETURNS bytea
146146
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_bytea'
147-
LANGUAGE C STRICT;
147+
LANGUAGE C STRICT PARALLEL SAFE;
148148

149149
--
150150
-- pgp_pub_decrypt(data, key)
151151
--
152152
CREATE FUNCTION pgp_pub_decrypt(bytea, bytea)
153153
RETURNS text
154154
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_text'
155-
LANGUAGE C IMMUTABLE STRICT;
155+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
156156

157157
CREATE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea)
158158
RETURNS bytea
159159
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_bytea'
160-
LANGUAGE C IMMUTABLE STRICT;
160+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
161161

162162
--
163163
-- pgp_pub_decrypt(data, key, psw)
164164
--
165165
CREATE FUNCTION pgp_pub_decrypt(bytea, bytea, text)
166166
RETURNS text
167167
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_text'
168-
LANGUAGE C IMMUTABLE STRICT;
168+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
169169

170170
CREATE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text)
171171
RETURNS bytea
172172
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_bytea'
173-
LANGUAGE C IMMUTABLE STRICT;
173+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
174174

175175
--
176176
-- pgp_pub_decrypt(data, key, psw, arg)
177177
--
178178
CREATE FUNCTION pgp_pub_decrypt(bytea, bytea, text, text)
179179
RETURNS text
180180
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_text'
181-
LANGUAGE C IMMUTABLE STRICT;
181+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
182182

183183
CREATE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text, text)
184184
RETURNS bytea
185185
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_bytea'
186-
LANGUAGE C IMMUTABLE STRICT;
186+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
187187

188188
--
189189
-- PGP key ID
190190
--
191191
CREATE FUNCTION pgp_key_id(bytea)
192192
RETURNS text
193193
AS 'MODULE_PATHNAME', 'pgp_key_id_w'
194-
LANGUAGE C IMMUTABLE STRICT;
194+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
195195

196196
--
197197
-- pgp armor
198198
--
199199
CREATE FUNCTION armor(bytea)
200200
RETURNS text
201201
AS 'MODULE_PATHNAME', 'pg_armor'
202-
LANGUAGE C IMMUTABLE STRICT;
202+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
203203

204204
CREATE FUNCTION armor(bytea, text[], text[])
205205
RETURNS text
206206
AS 'MODULE_PATHNAME', 'pg_armor'
207-
LANGUAGE C IMMUTABLE STRICT;
207+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
208208

209209
CREATE FUNCTION dearmor(text)
210210
RETURNS bytea
211211
AS 'MODULE_PATHNAME', 'pg_dearmor'
212-
LANGUAGE C IMMUTABLE STRICT;
212+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
213213

214214
CREATE FUNCTION pgp_armor_headers(text, key OUT text, value OUT text)
215215
RETURNS SETOF record
216216
AS 'MODULE_PATHNAME', 'pgp_armor_headers'
217-
LANGUAGE C IMMUTABLE STRICT;
217+
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;

contrib/pgcrypto/pgcrypto.control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# pgcrypto extension
22
comment = 'cryptographic functions'
3-
default_version = '1.2'
3+
default_version = '1.3'
44
module_pathname = '$libdir/pgcrypto'
55
relocatable = true

0 commit comments

Comments
 (0)