Re: Parallel safety tagging of extension functions - Mailing list pgsql-hackers

From Andreas Karlsson
Subject Re: Parallel safety tagging of extension functions
Date
Msg-id 5740DE26.7080606@proxel.se
Whole thread Raw
In response to Re: Parallel safety tagging of extension functions  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Parallel safety tagging of extension functions  (Michael Paquier <michael.paquier@gmail.com>)
List pgsql-hackers
On 05/21/2016 11:45 AM, Tom Lane wrote:
> Yes, let's fix it.  This will also take care of the questions about
> whether the GIN/GIST opclass tweaks I made a few months ago require
> module version bumps.

Do you have any idea what the best way to add these tweaks to the 
upgrade scripts would be?

My immediate thought is first doing an UPDATE of pg_proc and then 
updating the catcache with CREATE OR REPLACE with the new arguments. 
Does that work? Is there a less ugly way to accomplish this?

Example:

UPDATE pg_proc SET proargtypes = ('internal'::regtype::oid || ' ' || 
'internal'::regtype::oid)::oidvector
WHERE proname = 'gbt_oid_union'
AND proargtypes = ('bytea'::regtype::oid || ' ' || 
'internal'::regtype::oid)::oidvector
AND pronamespace = current_schema()::regnamespace;

CREATE OR REPLACE FUNCTION gbt_oid_union(internal, internal)
RETURNS gbtreekey8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;

Andreas




pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: 9.4 failure on skink in _bt_newroot/XLogCheckBuffer
Next
From: Michael Paquier
Date:
Subject: Re: Parallel safety tagging of extension functions