mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +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,41 +1,41 @@
|
||||
/* contrib/fuzzystrmatch/fuzzystrmatch--1.0.sql */
|
||||
|
||||
CREATE OR REPLACE FUNCTION levenshtein (text,text) RETURNS int
|
||||
CREATE FUNCTION levenshtein (text,text) RETURNS int
|
||||
AS 'MODULE_PATHNAME','levenshtein'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION levenshtein (text,text,int,int,int) RETURNS int
|
||||
CREATE FUNCTION levenshtein (text,text,int,int,int) RETURNS int
|
||||
AS 'MODULE_PATHNAME','levenshtein_with_costs'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION levenshtein_less_equal (text,text,int) RETURNS int
|
||||
CREATE FUNCTION levenshtein_less_equal (text,text,int) RETURNS int
|
||||
AS 'MODULE_PATHNAME','levenshtein_less_equal'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION levenshtein_less_equal (text,text,int,int,int,int) RETURNS int
|
||||
CREATE FUNCTION levenshtein_less_equal (text,text,int,int,int,int) RETURNS int
|
||||
AS 'MODULE_PATHNAME','levenshtein_less_equal_with_costs'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION metaphone (text,int) RETURNS text
|
||||
CREATE FUNCTION metaphone (text,int) RETURNS text
|
||||
AS 'MODULE_PATHNAME','metaphone'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION soundex(text) RETURNS text
|
||||
CREATE FUNCTION soundex(text) RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'soundex'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION text_soundex(text) RETURNS text
|
||||
CREATE FUNCTION text_soundex(text) RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'soundex'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION difference(text,text) RETURNS int
|
||||
CREATE FUNCTION difference(text,text) RETURNS int
|
||||
AS 'MODULE_PATHNAME', 'difference'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION dmetaphone (text) RETURNS text
|
||||
CREATE FUNCTION dmetaphone (text) RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'dmetaphone'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION dmetaphone_alt (text) RETURNS text
|
||||
CREATE FUNCTION dmetaphone_alt (text) RETURNS text
|
||||
AS 'MODULE_PATHNAME', 'dmetaphone_alt'
|
||||
LANGUAGE C IMMUTABLE STRICT;
|
||||
|
Reference in New Issue
Block a user