Skip to content

Commit 86897f5

Browse files
author
Neil Conway
committed
This patch updates the DDL for contrib/pgcrypto to create all
functions as STRICT, and all functions except gen_salt() as IMMUTABLE. gen_salt() is VOLATILE. Although the functions are now STRICT, I left their PG_ARGISNULL() checks in place as a protective measure for users who install the new code but use old (non-STRICT) catalog entries (e.g., restored from a dump). Per recent discussion in pgsql-hackers. Patch from Michael Fuhr.
1 parent 40ffa1a commit 86897f5

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

contrib/pgcrypto/pgcrypto.sql.in

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,71 +4,71 @@ SET search_path = public;
44
CREATE OR REPLACE FUNCTION digest(text, text)
55
RETURNS bytea
66
AS 'MODULE_PATHNAME', 'pg_digest'
7-
LANGUAGE 'C';
7+
LANGUAGE 'C' IMMUTABLE STRICT;
88

99
CREATE OR REPLACE FUNCTION digest(bytea, text)
1010
RETURNS bytea
1111
AS 'MODULE_PATHNAME', 'pg_digest'
12-
LANGUAGE 'C';
12+
LANGUAGE 'C' IMMUTABLE STRICT;
1313

1414
CREATE OR REPLACE FUNCTION digest_exists(text)
1515
RETURNS bool
1616
AS 'MODULE_PATHNAME', 'pg_digest_exists'
17-
LANGUAGE 'C';
17+
LANGUAGE 'C' IMMUTABLE STRICT;
1818

1919
CREATE OR REPLACE FUNCTION hmac(text, text, text)
2020
RETURNS bytea
2121
AS 'MODULE_PATHNAME', 'pg_hmac'
22-
LANGUAGE 'C';
22+
LANGUAGE 'C' IMMUTABLE STRICT;
2323

2424
CREATE OR REPLACE FUNCTION hmac(bytea, bytea, text)
2525
RETURNS bytea
2626
AS 'MODULE_PATHNAME', 'pg_hmac'
27-
LANGUAGE 'C';
27+
LANGUAGE 'C' IMMUTABLE STRICT;
2828

2929
CREATE OR REPLACE FUNCTION hmac_exists(text)
3030
RETURNS bool
3131
AS 'MODULE_PATHNAME', 'pg_hmac_exists'
32-
LANGUAGE 'C';
32+
LANGUAGE 'C' IMMUTABLE STRICT;
3333

3434
CREATE OR REPLACE FUNCTION crypt(text, text)
3535
RETURNS text
3636
AS 'MODULE_PATHNAME', 'pg_crypt'
37-
LANGUAGE 'C';
37+
LANGUAGE 'C' IMMUTABLE STRICT;
3838

3939
CREATE OR REPLACE FUNCTION gen_salt(text)
4040
RETURNS text
4141
AS 'MODULE_PATHNAME', 'pg_gen_salt'
42-
LANGUAGE 'C';
42+
LANGUAGE 'C' VOLATILE STRICT;
4343

4444
CREATE OR REPLACE FUNCTION gen_salt(text, int4)
4545
RETURNS text
4646
AS 'MODULE_PATHNAME', 'pg_gen_salt_rounds'
47-
LANGUAGE 'C';
47+
LANGUAGE 'C' VOLATILE STRICT;
4848

4949
CREATE OR REPLACE FUNCTION encrypt(bytea, bytea, text)
5050
RETURNS bytea
5151
AS 'MODULE_PATHNAME', 'pg_encrypt'
52-
LANGUAGE 'C';
52+
LANGUAGE 'C' IMMUTABLE STRICT;
5353

5454
CREATE OR REPLACE FUNCTION decrypt(bytea, bytea, text)
5555
RETURNS bytea
5656
AS 'MODULE_PATHNAME', 'pg_decrypt'
57-
LANGUAGE 'C';
57+
LANGUAGE 'C' IMMUTABLE STRICT;
5858

5959
CREATE OR REPLACE FUNCTION encrypt_iv(bytea, bytea, bytea, text)
6060
RETURNS bytea
6161
AS 'MODULE_PATHNAME', 'pg_encrypt_iv'
62-
LANGUAGE 'C';
62+
LANGUAGE 'C' IMMUTABLE STRICT;
6363

6464
CREATE OR REPLACE FUNCTION decrypt_iv(bytea, bytea, bytea, text)
6565
RETURNS bytea
6666
AS 'MODULE_PATHNAME', 'pg_decrypt_iv'
67-
LANGUAGE 'C';
67+
LANGUAGE 'C' IMMUTABLE STRICT;
6868

6969
CREATE OR REPLACE FUNCTION cipher_exists(text)
7070
RETURNS bool
7171
AS 'MODULE_PATHNAME', 'pg_cipher_exists'
72-
LANGUAGE 'C';
72+
LANGUAGE 'C' IMMUTABLE STRICT;
7373

7474

0 commit comments

Comments
 (0)