Pour obtenir la définition d'une fonction, utilisez pg_get_functiondef()
:
select pg_get_functiondef(oid)
from pg_proc
where proname = 'foo';
Il existe des fonctions similaires pour récupérer la définition d'un index, d'une vue, d'une règle, etc. Pour plus de détails, consultez le manuel :http://www.postgresql.org /docs/current/static/functions-info.html
Obtenir la définition d'un type d'utilisateur est un peu plus délicat. Vous devrez interroger information_schema.attributes
pour cela :
select attribute_name, data_type
from information_schema.attributes
where udt_schema = 'public'
and udt_name = 'footype'
order by ordinal_position;
À partir de là, vous devez réassembler le create type
déclaration.
Pour plus de détails, vous devrez lire la documentation du catalogue système :http ://www.postgresql.org/docs/current/static/catalogs.html
Mais vous devriez préférer information_schema
vues si elles renvoient les mêmes informations.