From 5484c0a9806b3e90b483128bc386054fc432cb65 Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> 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 87b54425681..4e7c9226bcd 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 a4fd7c22db8..9a64fcb18be 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 2c2e3e3848a..f3552849075 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 a793dc9c0cd..e3aea6399e9 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 a85c85d4c1b..a964a49059a 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 e2e4721dca9..d79bdc96d99 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 f040bd3f561..62531371bf9 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 7afe51f1483..3f21d1b7210 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 50f35dd16b0..e8deadc62d0 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 90d0946de2c..c2628caceb5 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 58df728c07e..ff76b8b68a4 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 69f20025667..47377ebe79e 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 4c26c6e1cf0..12d341f2075 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 -- GitLab