Lister les types enum d’une base de données

Comment lister les tyopes enum utilisé dans ma base de données, dans quel schéma sont-ils définis et qsuelles sont les valeurs de leurs différenst éléments ?

Avec PostgreSQL 9.x :

SELECT nspname AS schema, typname AS nom , string_agg(enumlabel::text, ', '::text) AS definition
  FROM pg_enum JOIN pg_type ON enumtypid = pg_type.oid
  JOIN pg_namespace ON pg_type.typnamespace = pg_namespace.oid
 WHERE typcategory = 'E'
 GROUP BY nspname, typname
 ORDER BY 1,2

Avec PostgreSQL 8.5 :

SELECT nspname AS schema, typname AS nom , array_to_string(array_agg(enumlabel::text),', ') AS definition
  FROM pg_enum JOIN pg_type ON enumtypid = pg_type.oid
  JOIN pg_namespace ON pg_type.typnamespace = pg_namespace.oid
 WHERE typcategory = 'E'
 GROUP BY nspname, typname
 ORDER BY 1,2