On Sat, May 21, 2016 at 6:16 PM, Andreas Karlsson <andreas@proxel.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