summaryrefslogtreecommitdiff
path: root/contrib/tablefunc
diff options
context:
space:
mode:
authorTom Lane2011-02-14 02:24:14 +0000
committerTom Lane2011-02-14 03:54:52 +0000
commit029fac2264101919b65fb6319bb994f941969471 (patch)
treeedb89110508318a04730a7caa42d312e050ef7ce /contrib/tablefunc
parent629b3af27d5c2bc9d6e16b22b943ad651d4ecb56 (diff)
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.
Diffstat (limited to 'contrib/tablefunc')
-rw-r--r--contrib/tablefunc/tablefunc--1.0.sql22
1 files changed, 11 insertions, 11 deletions
diff --git a/contrib/tablefunc/tablefunc--1.0.sql b/contrib/tablefunc/tablefunc--1.0.sql
index 63dd8c4634c..7bf117cb5c0 100644
--- a/contrib/tablefunc/tablefunc--1.0.sql
+++ b/contrib/tablefunc/tablefunc--1.0.sql
@@ -1,12 +1,12 @@
/* contrib/tablefunc/tablefunc--1.0.sql */
-CREATE OR REPLACE FUNCTION normal_rand(int4, float8, float8)
+CREATE FUNCTION normal_rand(int4, float8, float8)
RETURNS setof float8
AS 'MODULE_PATHNAME','normal_rand'
LANGUAGE C VOLATILE STRICT;
-- the generic crosstab function:
-CREATE OR REPLACE FUNCTION crosstab(text)
+CREATE FUNCTION crosstab(text)
RETURNS setof record
AS 'MODULE_PATHNAME','crosstab'
LANGUAGE C STABLE STRICT;
@@ -36,50 +36,50 @@ CREATE TYPE tablefunc_crosstab_4 AS
category_4 TEXT
);
-CREATE OR REPLACE FUNCTION crosstab2(text)
+CREATE FUNCTION crosstab2(text)
RETURNS setof tablefunc_crosstab_2
AS 'MODULE_PATHNAME','crosstab'
LANGUAGE C STABLE STRICT;
-CREATE OR REPLACE FUNCTION crosstab3(text)
+CREATE FUNCTION crosstab3(text)
RETURNS setof tablefunc_crosstab_3
AS 'MODULE_PATHNAME','crosstab'
LANGUAGE C STABLE STRICT;
-CREATE OR REPLACE FUNCTION crosstab4(text)
+CREATE FUNCTION crosstab4(text)
RETURNS setof tablefunc_crosstab_4
AS 'MODULE_PATHNAME','crosstab'
LANGUAGE C STABLE STRICT;
-- obsolete:
-CREATE OR REPLACE FUNCTION crosstab(text,int)
+CREATE FUNCTION crosstab(text,int)
RETURNS setof record
AS 'MODULE_PATHNAME','crosstab'
LANGUAGE C STABLE STRICT;
-CREATE OR REPLACE FUNCTION crosstab(text,text)
+CREATE FUNCTION crosstab(text,text)
RETURNS setof record
AS 'MODULE_PATHNAME','crosstab_hash'
LANGUAGE C STABLE STRICT;
-CREATE OR REPLACE FUNCTION connectby(text,text,text,text,int,text)
+CREATE FUNCTION connectby(text,text,text,text,int,text)
RETURNS setof record
AS 'MODULE_PATHNAME','connectby_text'
LANGUAGE C STABLE STRICT;
-CREATE OR REPLACE FUNCTION connectby(text,text,text,text,int)
+CREATE FUNCTION connectby(text,text,text,text,int)
RETURNS setof record
AS 'MODULE_PATHNAME','connectby_text'
LANGUAGE C STABLE STRICT;
-- These 2 take the name of a field to ORDER BY as 4th arg (for sorting siblings)
-CREATE OR REPLACE FUNCTION connectby(text,text,text,text,text,int,text)
+CREATE FUNCTION connectby(text,text,text,text,text,int,text)
RETURNS setof record
AS 'MODULE_PATHNAME','connectby_text_serial'
LANGUAGE C STABLE STRICT;
-CREATE OR REPLACE FUNCTION connectby(text,text,text,text,text,int)
+CREATE FUNCTION connectby(text,text,text,text,text,int)
RETURNS setof record
AS 'MODULE_PATHNAME','connectby_text_serial'
LANGUAGE C STABLE STRICT;