Para obter a definição de uma função use
pg_get_functiondef()
:select pg_get_functiondef(oid)
from pg_proc
where proname = 'foo';
Existem funções semelhantes para recuperar a definição de um índice, uma visão, uma regra e assim por diante. Para obter detalhes, consulte o manual:http://www.postgresql.org /docs/current/static/functions-info.html
Obter a definição de um tipo de usuário é um pouco mais complicado. Você precisará consultar
information_schema.attributes
por isso:select attribute_name, data_type
from information_schema.attributes
where udt_schema = 'public'
and udt_name = 'footype'
order by ordinal_position;
A partir disso, você precisa remontar o
create type
declaração. Para obter mais detalhes, você precisará ler a documentação do catálogo do sistema:http ://www.postgresql.org/docs/current/static/catalogs.html
Mas você deve preferir
information_schema
visualizações se retornarem as mesmas informações.