Je me rends compte que j'arrive un peu tard, mais c'était le premier résultat de ma recherche Google, alors je me suis dit que j'allais vous répondre avec ce que j'ai trouvé.
Vous pouvez aller assez loin vers une solution avec cette requête pour obtenir les colonnes :
SELECT *
FROM information_schema.columns
WHERE table_schema = 'YOURSCHEMA' AND table_name = 'YOURTABLE'
ORDER BY ordinal_position;
Et ensuite cette requête pour les index les plus courants :
SELECT c.oid, c.relname, a.attname, a.attnum, i.indisprimary, i.indisunique
FROM pg_index AS i, pg_class AS c, pg_attribute AS a
WHERE i.indexrelid = c.oid AND i.indexrelid = a.attrelid AND i.indrelid = 'YOURSCHEMA.YOURTABLE'::regclass
ORDER BY" => "c.oid, a.attnum
Il s'agit ensuite de construire la ou les chaînes de requête dans le bon format.