Mostrar el código de funciones en postgres

Posted on Tue 07 July 2009 in Sistemas

Puede resultar muy util ver el código de algún procedimiento almacenado en postgres. El código de a continuación tomado de Postgresql General Bits de A. Elein Mustain puede resultar muy útil.
create or replace view showfunctions as
select
l.lanname,
t.typname || ' = ' || n.nspname || '.' ||
    p.proname || '(' || pg_catalog.oidvectortypes(p.proargtypes) || ')'
as function_definition,
(select case when lanname <> 'c'
    then '\n\n'||prosrc ||'\n\n'
    else '\n'||prosrc ||'.so\n\n'
end) as source
from pg_proc p, pg_type t, pg_namespace n, pg_language l
where p.prorettype = t.oid and p.pronamespace = n.oid
    and p.prolang = l.oid;

-- Muestra todas las funciones en el schema public ( y cualquier funcion con
-- public en su nombre)
select * from showfunctions where function_definition like '%public%';

-- Muestra todas las funciones que toman o reciben booleanos
select * from showfunctions where function_definition like '%boolean%';