Thanks to visit codestin.com
Credit goes to github.com

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)