mirror of
https://github.com/postgres/postgres.git
synced 2025-10-13 18:28:01 +03:00
Avoid use of CREATE OR REPLACE FUNCTION in extension installation files.
It was never terribly consistent to use OR REPLACE (because of the lack of comparable functionality for data types, operators, etc), and experimentation shows that it's now positively pernicious in the extension world. We really want a failure to occur if there are any conflicts, else it's unclear what the extension-ownership state of the conflicted object ought to be. Most of the time, CREATE EXTENSION will fail anyway because of conflicts on other object types, but an extension defining only functions can succeed, with bad results.
This commit is contained in:
@@ -1,61 +1,61 @@
|
||||
/* contrib/pgcrypto/pgcrypto--1.0.sql */
|
||||
|
||||
CREATE OR REPLACE FUNCTION digest(text, text)
|
||||
CREATE FUNCTION digest(text, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pg_digest'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION digest(bytea, text)
|
||||
CREATE FUNCTION digest(bytea, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pg_digest'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION hmac(text, text, text)
|
||||
CREATE FUNCTION hmac(text, text, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pg_hmac'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION hmac(bytea, bytea, text)
|
||||
CREATE FUNCTION hmac(bytea, bytea, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pg_hmac'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION crypt(text, text)
|
||||
CREATE FUNCTION crypt(text, text)
|
||||
RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'pg_crypt'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION gen_salt(text)
|
||||
CREATE FUNCTION gen_salt(text)
|
||||
RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'pg_gen_salt'
|
||||
LANGUAGE C VOLATILE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION gen_salt(text, int4)
|
||||
CREATE FUNCTION gen_salt(text, int4)
|
||||
RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'pg_gen_salt_rounds'
|
||||
LANGUAGE C VOLATILE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION encrypt(bytea, bytea, text)
|
||||
CREATE FUNCTION encrypt(bytea, bytea, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pg_encrypt'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION decrypt(bytea, bytea, text)
|
||||
CREATE FUNCTION decrypt(bytea, bytea, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pg_decrypt'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION encrypt_iv(bytea, bytea, bytea, text)
|
||||
CREATE FUNCTION encrypt_iv(bytea, bytea, bytea, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pg_encrypt_iv'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION decrypt_iv(bytea, bytea, bytea, text)
|
||||
CREATE FUNCTION decrypt_iv(bytea, bytea, bytea, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pg_decrypt_iv'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION gen_random_bytes(int4)
|
||||
CREATE FUNCTION gen_random_bytes(int4)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pg_random_bytes'
|
||||
LANGUAGE 'C' VOLATILE STRICT;
|
||||
@@ -63,12 +63,12 @@ LANGUAGE 'C' VOLATILE STRICT;
|
||||
--
|
||||
-- pgp_sym_encrypt(data, key)
|
||||
--
|
||||
CREATE OR REPLACE FUNCTION pgp_sym_encrypt(text, text)
|
||||
CREATE FUNCTION pgp_sym_encrypt(text, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_text'
|
||||
LANGUAGE C STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION pgp_sym_encrypt_bytea(bytea, text)
|
||||
CREATE FUNCTION pgp_sym_encrypt_bytea(bytea, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_bytea'
|
||||
LANGUAGE C STRICT;
|
||||
@@ -76,12 +76,12 @@ LANGUAGE C STRICT;
|
||||
--
|
||||
-- pgp_sym_encrypt(data, key, args)
|
||||
--
|
||||
CREATE OR REPLACE FUNCTION pgp_sym_encrypt(text, text, text)
|
||||
CREATE FUNCTION pgp_sym_encrypt(text, text, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_text'
|
||||
LANGUAGE C STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION pgp_sym_encrypt_bytea(bytea, text, text)
|
||||
CREATE FUNCTION pgp_sym_encrypt_bytea(bytea, text, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_bytea'
|
||||
LANGUAGE C STRICT;
|
||||
@@ -89,12 +89,12 @@ LANGUAGE C STRICT;
|
||||
--
|
||||
-- pgp_sym_decrypt(data, key)
|
||||
--
|
||||
CREATE OR REPLACE FUNCTION pgp_sym_decrypt(bytea, text)
|
||||
CREATE FUNCTION pgp_sym_decrypt(bytea, text)
|
||||
RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_text'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION pgp_sym_decrypt_bytea(bytea, text)
|
||||
CREATE FUNCTION pgp_sym_decrypt_bytea(bytea, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_bytea'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
@@ -102,12 +102,12 @@ LANGUAGE C IMMUTABLE STRICT;
|
||||
--
|
||||
-- pgp_sym_decrypt(data, key, args)
|
||||
--
|
||||
CREATE OR REPLACE FUNCTION pgp_sym_decrypt(bytea, text, text)
|
||||
CREATE FUNCTION pgp_sym_decrypt(bytea, text, text)
|
||||
RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_text'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION pgp_sym_decrypt_bytea(bytea, text, text)
|
||||
CREATE FUNCTION pgp_sym_decrypt_bytea(bytea, text, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_bytea'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
@@ -115,12 +115,12 @@ LANGUAGE C IMMUTABLE STRICT;
|
||||
--
|
||||
-- pgp_pub_encrypt(data, key)
|
||||
--
|
||||
CREATE OR REPLACE FUNCTION pgp_pub_encrypt(text, bytea)
|
||||
CREATE FUNCTION pgp_pub_encrypt(text, bytea)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_text'
|
||||
LANGUAGE C STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION pgp_pub_encrypt_bytea(bytea, bytea)
|
||||
CREATE FUNCTION pgp_pub_encrypt_bytea(bytea, bytea)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_bytea'
|
||||
LANGUAGE C STRICT;
|
||||
@@ -128,12 +128,12 @@ LANGUAGE C STRICT;
|
||||
--
|
||||
-- pgp_pub_encrypt(data, key, args)
|
||||
--
|
||||
CREATE OR REPLACE FUNCTION pgp_pub_encrypt(text, bytea, text)
|
||||
CREATE FUNCTION pgp_pub_encrypt(text, bytea, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_text'
|
||||
LANGUAGE C STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION pgp_pub_encrypt_bytea(bytea, bytea, text)
|
||||
CREATE FUNCTION pgp_pub_encrypt_bytea(bytea, bytea, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_bytea'
|
||||
LANGUAGE C STRICT;
|
||||
@@ -141,12 +141,12 @@ LANGUAGE C STRICT;
|
||||
--
|
||||
-- pgp_pub_decrypt(data, key)
|
||||
--
|
||||
CREATE OR REPLACE FUNCTION pgp_pub_decrypt(bytea, bytea)
|
||||
CREATE FUNCTION pgp_pub_decrypt(bytea, bytea)
|
||||
RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_text'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea)
|
||||
CREATE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_bytea'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
@@ -154,12 +154,12 @@ LANGUAGE C IMMUTABLE STRICT;
|
||||
--
|
||||
-- pgp_pub_decrypt(data, key, psw)
|
||||
--
|
||||
CREATE OR REPLACE FUNCTION pgp_pub_decrypt(bytea, bytea, text)
|
||||
CREATE FUNCTION pgp_pub_decrypt(bytea, bytea, text)
|
||||
RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_text'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text)
|
||||
CREATE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_bytea'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
@@ -167,12 +167,12 @@ LANGUAGE C IMMUTABLE STRICT;
|
||||
--
|
||||
-- pgp_pub_decrypt(data, key, psw, arg)
|
||||
--
|
||||
CREATE OR REPLACE FUNCTION pgp_pub_decrypt(bytea, bytea, text, text)
|
||||
CREATE FUNCTION pgp_pub_decrypt(bytea, bytea, text, text)
|
||||
RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_text'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text, text)
|
||||
CREATE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text, text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_bytea'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
@@ -180,7 +180,7 @@ LANGUAGE C IMMUTABLE STRICT;
|
||||
--
|
||||
-- PGP key ID
|
||||
--
|
||||
CREATE OR REPLACE FUNCTION pgp_key_id(bytea)
|
||||
CREATE FUNCTION pgp_key_id(bytea)
|
||||
RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'pgp_key_id_w'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
@@ -188,12 +188,12 @@ LANGUAGE C IMMUTABLE STRICT;
|
||||
--
|
||||
-- pgp armor
|
||||
--
|
||||
CREATE OR REPLACE FUNCTION armor(bytea)
|
||||
CREATE FUNCTION armor(bytea)
|
||||
RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'pg_armor'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION dearmor(text)
|
||||
CREATE FUNCTION dearmor(text)
|
||||
RETURNS bytea
|
||||
AS 'MODULE_PATHNAME', 'pg_dearmor'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
Reference in New Issue
Block a user