Re: Parallel safety tagging of extension functions

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: Andreas Karlsson <andreas(at)proxel(dot)se>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Parallel safety tagging of extension functions
Date: 2016-05-21 22:21:10
Message-ID: CAB7nPqTxg-GG5Uzjsdex2F1R38xwtP9m6zidEG44Vrni2tD_Rw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, May 21, 2016 at 6:16 PM, Andreas Karlsson <andreas(at)proxel(dot)se> wrote:
> 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;

Isn't it better to just drop and recreate the function? pageinspect
did so for example for heap_page_items in 1.4 to update its OUT
arguments.
--
Michael

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2016-05-21 22:43:54 Re: statistics for shared catalogs not updated when autovacuum is off
Previous Message Andreas Karlsson 2016-05-21 22:16:06 Re: Parallel safety tagging of extension functions