Update pgcrypto extension for parallel query.

All functions provided by this extension are PARALLEL SAFE.

Andreas Karlsson
This commit is contained in:
Robert Haas 2016-06-09 17:18:14 -04:00
parent 06d7fd6e29
commit 0dbf3ce0e0
4 changed files with 80 additions and 39 deletions

View File

@ -26,8 +26,8 @@ MODULE_big = pgcrypto
OBJS = $(SRCS:.c=.o) $(WIN32RES)
EXTENSION = pgcrypto
DATA = pgcrypto--1.2.sql pgcrypto--1.1--1.2.sql pgcrypto--1.0--1.1.sql \
pgcrypto--unpackaged--1.0.sql
DATA = pgcrypto--1.3.sql pgcrypto--1.2--1.3.sql pgcrypto--1.1--1.2.sql \
pgcrypto--1.0--1.1.sql pgcrypto--unpackaged--1.0.sql
PGFILEDESC = "pgcrypto - cryptographic functions"
REGRESS = init md5 sha1 hmac-md5 hmac-sha1 blowfish rijndael \

View File

@ -0,0 +1,41 @@
/* contrib/pgcrypto/pgcrypto--1.2--1.3.sql */
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
\echo Use "ALTER EXTENSION pgcrypto UPDATE TO '1.3'" to load this file. \quit
ALTER FUNCTION digest(text, text) PARALLEL SAFE;
ALTER FUNCTION digest(bytea, text) PARALLEL SAFE;
ALTER FUNCTION hmac(text, text, text) PARALLEL SAFE;
ALTER FUNCTION hmac(bytea, bytea, text) PARALLEL SAFE;
ALTER FUNCTION crypt(text, text) PARALLEL SAFE;
ALTER FUNCTION gen_salt(text) PARALLEL SAFE;
ALTER FUNCTION gen_salt(text, int4) PARALLEL SAFE;
ALTER FUNCTION encrypt(bytea, bytea, text) PARALLEL SAFE;
ALTER FUNCTION decrypt(bytea, bytea, text) PARALLEL SAFE;
ALTER FUNCTION encrypt_iv(bytea, bytea, bytea, text) PARALLEL SAFE;
ALTER FUNCTION decrypt_iv(bytea, bytea, bytea, text) PARALLEL SAFE;
ALTER FUNCTION gen_random_bytes(int4) PARALLEL SAFE;
ALTER FUNCTION gen_random_uuid() PARALLEL SAFE;
ALTER FUNCTION pgp_sym_encrypt(text, text) PARALLEL SAFE;
ALTER FUNCTION pgp_sym_encrypt_bytea(bytea, text) PARALLEL SAFE;
ALTER FUNCTION pgp_sym_encrypt(text, text, text) PARALLEL SAFE;
ALTER FUNCTION pgp_sym_encrypt_bytea(bytea, text, text) PARALLEL SAFE;
ALTER FUNCTION pgp_sym_decrypt(bytea, text) PARALLEL SAFE;
ALTER FUNCTION pgp_sym_decrypt_bytea(bytea, text) PARALLEL SAFE;
ALTER FUNCTION pgp_sym_decrypt(bytea, text, text) PARALLEL SAFE;
ALTER FUNCTION pgp_sym_decrypt_bytea(bytea, text, text) PARALLEL SAFE;
ALTER FUNCTION pgp_pub_encrypt(text, bytea) PARALLEL SAFE;
ALTER FUNCTION pgp_pub_encrypt_bytea(bytea, bytea) PARALLEL SAFE;
ALTER FUNCTION pgp_pub_encrypt(text, bytea, text) PARALLEL SAFE;
ALTER FUNCTION pgp_pub_encrypt_bytea(bytea, bytea, text) PARALLEL SAFE;
ALTER FUNCTION pgp_pub_decrypt(bytea, bytea) PARALLEL SAFE;
ALTER FUNCTION pgp_pub_decrypt_bytea(bytea, bytea) PARALLEL SAFE;
ALTER FUNCTION pgp_pub_decrypt(bytea, bytea, text) PARALLEL SAFE;
ALTER FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text) PARALLEL SAFE;
ALTER FUNCTION pgp_pub_decrypt(bytea, bytea, text, text) PARALLEL SAFE;
ALTER FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text, text) PARALLEL SAFE;
ALTER FUNCTION pgp_key_id(bytea) PARALLEL SAFE;
ALTER FUNCTION armor(bytea) PARALLEL SAFE;
ALTER FUNCTION armor(bytea, text[], text[]) PARALLEL SAFE;
ALTER FUNCTION dearmor(text) PARALLEL SAFE;
ALTER FUNCTION pgp_armor_headers(text) PARALLEL SAFE;

View File

@ -6,67 +6,67 @@
CREATE FUNCTION digest(text, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pg_digest'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION digest(bytea, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pg_digest'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION hmac(text, text, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pg_hmac'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION hmac(bytea, bytea, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pg_hmac'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION crypt(text, text)
RETURNS text
AS 'MODULE_PATHNAME', 'pg_crypt'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gen_salt(text)
RETURNS text
AS 'MODULE_PATHNAME', 'pg_gen_salt'
LANGUAGE C VOLATILE STRICT;
LANGUAGE C VOLATILE STRICT PARALLEL SAFE;
CREATE FUNCTION gen_salt(text, int4)
RETURNS text
AS 'MODULE_PATHNAME', 'pg_gen_salt_rounds'
LANGUAGE C VOLATILE STRICT;
LANGUAGE C VOLATILE STRICT PARALLEL SAFE;
CREATE FUNCTION encrypt(bytea, bytea, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pg_encrypt'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION decrypt(bytea, bytea, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pg_decrypt'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION encrypt_iv(bytea, bytea, bytea, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pg_encrypt_iv'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION decrypt_iv(bytea, bytea, bytea, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pg_decrypt_iv'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gen_random_bytes(int4)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pg_random_bytes'
LANGUAGE C VOLATILE STRICT;
LANGUAGE C VOLATILE STRICT PARALLEL SAFE;
CREATE FUNCTION gen_random_uuid()
RETURNS uuid
AS 'MODULE_PATHNAME', 'pg_random_uuid'
LANGUAGE C VOLATILE;
LANGUAGE C VOLATILE PARALLEL SAFE;
--
-- pgp_sym_encrypt(data, key)
@ -74,12 +74,12 @@ LANGUAGE C VOLATILE;
CREATE FUNCTION pgp_sym_encrypt(text, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_text'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL SAFE;
CREATE FUNCTION pgp_sym_encrypt_bytea(bytea, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_bytea'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL SAFE;
--
-- pgp_sym_encrypt(data, key, args)
@ -87,12 +87,12 @@ LANGUAGE C STRICT;
CREATE FUNCTION pgp_sym_encrypt(text, text, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_text'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL SAFE;
CREATE FUNCTION pgp_sym_encrypt_bytea(bytea, text, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_bytea'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL SAFE;
--
-- pgp_sym_decrypt(data, key)
@ -100,12 +100,12 @@ LANGUAGE C STRICT;
CREATE FUNCTION pgp_sym_decrypt(bytea, text)
RETURNS text
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_text'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION pgp_sym_decrypt_bytea(bytea, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_bytea'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
--
-- pgp_sym_decrypt(data, key, args)
@ -113,12 +113,12 @@ LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION pgp_sym_decrypt(bytea, text, text)
RETURNS text
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_text'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION pgp_sym_decrypt_bytea(bytea, text, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_bytea'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
--
-- pgp_pub_encrypt(data, key)
@ -126,12 +126,12 @@ LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION pgp_pub_encrypt(text, bytea)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_text'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL SAFE;
CREATE FUNCTION pgp_pub_encrypt_bytea(bytea, bytea)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_bytea'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL SAFE;
--
-- pgp_pub_encrypt(data, key, args)
@ -139,12 +139,12 @@ LANGUAGE C STRICT;
CREATE FUNCTION pgp_pub_encrypt(text, bytea, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_text'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL SAFE;
CREATE FUNCTION pgp_pub_encrypt_bytea(bytea, bytea, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_bytea'
LANGUAGE C STRICT;
LANGUAGE C STRICT PARALLEL SAFE;
--
-- pgp_pub_decrypt(data, key)
@ -152,12 +152,12 @@ LANGUAGE C STRICT;
CREATE FUNCTION pgp_pub_decrypt(bytea, bytea)
RETURNS text
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_text'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_bytea'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
--
-- pgp_pub_decrypt(data, key, psw)
@ -165,12 +165,12 @@ LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION pgp_pub_decrypt(bytea, bytea, text)
RETURNS text
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_text'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_bytea'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
--
-- pgp_pub_decrypt(data, key, psw, arg)
@ -178,12 +178,12 @@ LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION pgp_pub_decrypt(bytea, bytea, text, text)
RETURNS text
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_text'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text, text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_bytea'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
--
-- PGP key ID
@ -191,7 +191,7 @@ LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION pgp_key_id(bytea)
RETURNS text
AS 'MODULE_PATHNAME', 'pgp_key_id_w'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
--
-- pgp armor
@ -199,19 +199,19 @@ LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION armor(bytea)
RETURNS text
AS 'MODULE_PATHNAME', 'pg_armor'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION armor(bytea, text[], text[])
RETURNS text
AS 'MODULE_PATHNAME', 'pg_armor'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION dearmor(text)
RETURNS bytea
AS 'MODULE_PATHNAME', 'pg_dearmor'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION pgp_armor_headers(text, key OUT text, value OUT text)
RETURNS SETOF record
AS 'MODULE_PATHNAME', 'pgp_armor_headers'
LANGUAGE C IMMUTABLE STRICT;
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;

View File

@ -1,5 +1,5 @@
# pgcrypto extension
comment = 'cryptographic functions'
default_version = '1.2'
default_version = '1.3'
module_pathname = '$libdir/pgcrypto'
relocatable = true