Per ottenere la definizione di una funzione usa pg_get_functiondef()
:
select pg_get_functiondef(oid)
from pg_proc
where proname = 'foo';
Esistono funzioni simili per recuperare la definizione di un indice, una vista, una regola e così via. Per i dettagli vedere il manuale:http://www.postgresql.org /docs/current/static/functions-info.html
Ottenere la definizione di un tipo di utente è un po' più complicato. Dovrai interrogare information_schema.attributes
per quello:
select attribute_name, data_type
from information_schema.attributes
where udt_schema = 'public'
and udt_name = 'footype'
order by ordinal_position;
Da ciò devi riassemblare il create type
dichiarazione.
Per maggiori dettagli dovrai leggere la documentazione del catalogo di sistema:http ://www.postgresql.org/docs/current/static/catalogs.html
Ma dovresti preferire information_schema
visualizzazioni se restituiscono le stesse informazioni.