mirror of
https://github.com/postgres/postgres.git
synced 2025-07-31 22:04:40 +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:
@ -2,14 +2,14 @@
|
||||
|
||||
-- Internal function for the aggregate
|
||||
-- Is called for each item in an aggregation
|
||||
CREATE OR REPLACE FUNCTION int_agg_state (internal, int4)
|
||||
CREATE FUNCTION int_agg_state (internal, int4)
|
||||
RETURNS internal
|
||||
AS 'array_agg_transfn'
|
||||
LANGUAGE INTERNAL;
|
||||
|
||||
-- Internal function for the aggregate
|
||||
-- Is called at the end of the aggregation, and returns an array.
|
||||
CREATE OR REPLACE FUNCTION int_agg_final_array (internal)
|
||||
CREATE FUNCTION int_agg_final_array (internal)
|
||||
RETURNS int4[]
|
||||
AS 'array_agg_finalfn'
|
||||
LANGUAGE INTERNAL;
|
||||
@ -26,7 +26,7 @@ CREATE AGGREGATE int_array_aggregate (
|
||||
-- The enumeration function
|
||||
-- returns each element in a one dimensional integer array
|
||||
-- as a row.
|
||||
CREATE OR REPLACE FUNCTION int_array_enum(int4[])
|
||||
CREATE FUNCTION int_array_enum(int4[])
|
||||
RETURNS setof integer
|
||||
AS 'array_unnest'
|
||||
LANGUAGE INTERNAL IMMUTABLE STRICT;
|
||||
|
Reference in New Issue
Block a user