From 5484c0a9806b3e90b483128bc386054fc432cb65 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 14 Jun 2016 10:47:06 -0400 Subject: [PATCH] Minor fixes in contrib installation scripts. Extension scripts should never use CREATE OR REPLACE for initial object creation. If there is a collision with a pre-existing (probably user-created) object, we want extension installation to fail, not silently overwrite the user's object. Bloom and sslinfo both violated this precept. Also fix a number of scripts that had no standard header (the file name comment and the \echo...\quit guard). Probably the \echo...\quit hack is less important now than it was in 9.1 days, but that doesn't mean that individual extensions get to choose whether to use it or not. And fix a couple of evident copy-and-pasteos in file name comments. No need for back-patch: the REPLACE bugs are both new in 9.6, and the rest of this is pretty much cosmetic. Andreas Karlsson and Tom Lane --- contrib/bloom/bloom--1.0.sql | 7 ++++++- contrib/hstore_plperl/hstore_plperl--1.0.sql | 5 +++++ contrib/hstore_plperl/hstore_plperlu--1.0.sql | 5 +++++ contrib/hstore_plpython/hstore_plpython2u--1.0.sql | 5 +++++ contrib/hstore_plpython/hstore_plpython3u--1.0.sql | 5 +++++ contrib/hstore_plpython/hstore_plpythonu--1.0.sql | 5 +++++ contrib/ltree_plpython/ltree_plpython2u--1.0.sql | 5 +++++ contrib/ltree_plpython/ltree_plpython3u--1.0.sql | 5 +++++ contrib/ltree_plpython/ltree_plpythonu--1.0.sql | 5 +++++ contrib/pgcrypto/pgcrypto--1.3.sql | 2 +- contrib/pgrowlocks/pgrowlocks--1.2.sql | 2 +- contrib/pgstattuple/pgstattuple--1.4.sql | 2 +- contrib/sslinfo/sslinfo--1.0--1.1.sql | 2 +- 13 files changed, 50 insertions(+), 5 deletions(-) diff --git a/contrib/bloom/bloom--1.0.sql b/contrib/bloom/bloom--1.0.sql index 87b5442568..4e7c9226bc 100644 --- a/contrib/bloom/bloom--1.0.sql +++ b/contrib/bloom/bloom--1.0.sql @@ -1,4 +1,9 @@ -CREATE OR REPLACE FUNCTION blhandler(internal) +/* contrib/bloom/bloom--1.0.sql */ + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "CREATE EXTENSION bloom" to load this file. \quit + +CREATE FUNCTION blhandler(internal) RETURNS index_am_handler AS 'MODULE_PATHNAME' LANGUAGE C; diff --git a/contrib/hstore_plperl/hstore_plperl--1.0.sql b/contrib/hstore_plperl/hstore_plperl--1.0.sql index a4fd7c22db..9a64fcb18b 100644 --- a/contrib/hstore_plperl/hstore_plperl--1.0.sql +++ b/contrib/hstore_plperl/hstore_plperl--1.0.sql @@ -1,3 +1,8 @@ +/* contrib/hstore_plperl/hstore_plperl--1.0.sql */ + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "CREATE EXTENSION hstore_plperl" to load this file. \quit + -- make sure the prerequisite libraries are loaded LOAD 'plperl'; SELECT NULL::hstore; diff --git a/contrib/hstore_plperl/hstore_plperlu--1.0.sql b/contrib/hstore_plperl/hstore_plperlu--1.0.sql index 2c2e3e3848..f355284907 100644 --- a/contrib/hstore_plperl/hstore_plperlu--1.0.sql +++ b/contrib/hstore_plperl/hstore_plperlu--1.0.sql @@ -1,3 +1,8 @@ +/* contrib/hstore_plperl/hstore_plperlu--1.0.sql */ + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "CREATE EXTENSION hstore_plperlu" to load this file. \quit + -- make sure the prerequisite libraries are loaded LOAD 'plperl'; SELECT NULL::hstore; diff --git a/contrib/hstore_plpython/hstore_plpython2u--1.0.sql b/contrib/hstore_plpython/hstore_plpython2u--1.0.sql index a793dc9c0c..e3aea6399e 100644 --- a/contrib/hstore_plpython/hstore_plpython2u--1.0.sql +++ b/contrib/hstore_plpython/hstore_plpython2u--1.0.sql @@ -1,3 +1,8 @@ +/* contrib/hstore_plpython/hstore_plpython2u--1.0.sql */ + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "CREATE EXTENSION hstore_plpython2u" to load this file. \quit + -- make sure the prerequisite libraries are loaded LOAD 'plpython2'; SELECT NULL::hstore; diff --git a/contrib/hstore_plpython/hstore_plpython3u--1.0.sql b/contrib/hstore_plpython/hstore_plpython3u--1.0.sql index a85c85d4c1..a964a49059 100644 --- a/contrib/hstore_plpython/hstore_plpython3u--1.0.sql +++ b/contrib/hstore_plpython/hstore_plpython3u--1.0.sql @@ -1,3 +1,8 @@ +/* contrib/hstore_plpython/hstore_plpython3u--1.0.sql */ + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "CREATE EXTENSION hstore_plpython3u" to load this file. \quit + -- make sure the prerequisite libraries are loaded LOAD 'plpython3'; SELECT NULL::hstore; diff --git a/contrib/hstore_plpython/hstore_plpythonu--1.0.sql b/contrib/hstore_plpython/hstore_plpythonu--1.0.sql index e2e4721dca..d79bdc96d9 100644 --- a/contrib/hstore_plpython/hstore_plpythonu--1.0.sql +++ b/contrib/hstore_plpython/hstore_plpythonu--1.0.sql @@ -1,3 +1,8 @@ +/* contrib/hstore_plpython/hstore_plpythonu--1.0.sql */ + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "CREATE EXTENSION hstore_plpythonu" to load this file. \quit + -- make sure the prerequisite libraries are loaded LOAD 'plpython2'; -- change to plpython3 if that ever becomes the default SELECT NULL::hstore; diff --git a/contrib/ltree_plpython/ltree_plpython2u--1.0.sql b/contrib/ltree_plpython/ltree_plpython2u--1.0.sql index f040bd3f56..62531371bf 100644 --- a/contrib/ltree_plpython/ltree_plpython2u--1.0.sql +++ b/contrib/ltree_plpython/ltree_plpython2u--1.0.sql @@ -1,3 +1,8 @@ +/* contrib/ltree_plpython/ltree_plpython2u--1.0.sql */ + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "CREATE EXTENSION ltree_plpython2u" to load this file. \quit + -- make sure the prerequisite libraries are loaded LOAD 'plpython2'; SELECT NULL::ltree; diff --git a/contrib/ltree_plpython/ltree_plpython3u--1.0.sql b/contrib/ltree_plpython/ltree_plpython3u--1.0.sql index 7afe51f148..3f21d1b721 100644 --- a/contrib/ltree_plpython/ltree_plpython3u--1.0.sql +++ b/contrib/ltree_plpython/ltree_plpython3u--1.0.sql @@ -1,3 +1,8 @@ +/* contrib/ltree_plpython/ltree_plpython3u--1.0.sql */ + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "CREATE EXTENSION ltree_plpython3u" to load this file. \quit + -- make sure the prerequisite libraries are loaded LOAD 'plpython3'; SELECT NULL::ltree; diff --git a/contrib/ltree_plpython/ltree_plpythonu--1.0.sql b/contrib/ltree_plpython/ltree_plpythonu--1.0.sql index 50f35dd16b..e8deadc62d 100644 --- a/contrib/ltree_plpython/ltree_plpythonu--1.0.sql +++ b/contrib/ltree_plpython/ltree_plpythonu--1.0.sql @@ -1,3 +1,8 @@ +/* contrib/ltree_plpython/ltree_plpythonu--1.0.sql */ + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "CREATE EXTENSION ltree_plpythonu" to load this file. \quit + -- make sure the prerequisite libraries are loaded LOAD 'plpython2'; -- change to plpython3 if that ever becomes the default SELECT NULL::ltree; diff --git a/contrib/pgcrypto/pgcrypto--1.3.sql b/contrib/pgcrypto/pgcrypto--1.3.sql index 90d0946de2..c2628caceb 100644 --- a/contrib/pgcrypto/pgcrypto--1.3.sql +++ b/contrib/pgcrypto/pgcrypto--1.3.sql @@ -1,4 +1,4 @@ -/* contrib/pgcrypto/pgcrypto--1.2.sql */ +/* contrib/pgcrypto/pgcrypto--1.3.sql */ -- complain if script is sourced in psql, rather than via CREATE EXTENSION \echo Use "CREATE EXTENSION pgcrypto" to load this file. \quit diff --git a/contrib/pgrowlocks/pgrowlocks--1.2.sql b/contrib/pgrowlocks/pgrowlocks--1.2.sql index 58df728c07..ff76b8b68a 100644 --- a/contrib/pgrowlocks/pgrowlocks--1.2.sql +++ b/contrib/pgrowlocks/pgrowlocks--1.2.sql @@ -1,4 +1,4 @@ -/* contrib/pgrowlocks/pgrowlocks--1.1.sql */ +/* contrib/pgrowlocks/pgrowlocks--1.2.sql */ -- complain if script is sourced in psql, rather than via CREATE EXTENSION \echo Use "CREATE EXTENSION pgrowlocks" to load this file. \quit diff --git a/contrib/pgstattuple/pgstattuple--1.4.sql b/contrib/pgstattuple/pgstattuple--1.4.sql index 69f2002566..47377ebe79 100644 --- a/contrib/pgstattuple/pgstattuple--1.4.sql +++ b/contrib/pgstattuple/pgstattuple--1.4.sql @@ -1,4 +1,4 @@ -/* contrib/pgstattuple/pgstattuple--1.3.sql */ +/* contrib/pgstattuple/pgstattuple--1.4.sql */ -- complain if script is sourced in psql, rather than via CREATE EXTENSION \echo Use "CREATE EXTENSION pgstattuple" to load this file. \quit diff --git a/contrib/sslinfo/sslinfo--1.0--1.1.sql b/contrib/sslinfo/sslinfo--1.0--1.1.sql index 4c26c6e1cf..12d341f207 100644 --- a/contrib/sslinfo/sslinfo--1.0--1.1.sql +++ b/contrib/sslinfo/sslinfo--1.0--1.1.sql @@ -3,7 +3,7 @@ -- complain if script is sourced in psql, rather than via CREATE EXTENSION \echo Use "ALTER EXTENSION sslinfo UPDATE TO '1.1'" to load this file. \quit -CREATE OR REPLACE FUNCTION +CREATE FUNCTION ssl_extension_info(OUT name text, OUT value text, OUT critical boolean