Para obtener la definición de una función, use pg_get_functiondef()
:
select pg_get_functiondef(oid)
from pg_proc
where proname = 'foo';
Existen funciones similares para recuperar la definición de un índice, una vista, una regla, etc. Para obtener más información, consulte el manual:http://www.postgresql.org /docs/current/static/functions-info.html
Obtener la definición de un tipo de usuario es un poco más complicado. Deberá consultar information_schema.attributes
por eso:
select attribute_name, data_type
from information_schema.attributes
where udt_schema = 'public'
and udt_name = 'footype'
order by ordinal_position;
A partir de eso, debe volver a ensamblar el create type
declaración.
Para obtener más detalles, deberá leer la documentación del catálogo del sistema:http ://www.postgresql.org/docs/current/static/catalogs.html
Pero debería preferir information_schema
visualizaciones si devuelven la misma información.