Diese Antwort ist ein wenig spät, aber es tauchte auf einer Google-Suche bis ich forschte dieses Problem. Wir brauchten nur Tabellenbeschreibungen, aber die Methode wäre für Spalten gleich. Die Spaltenbeschreibungen befinden sich auch in der Tabelle pg_description, auf die von objoid verwiesen wird.
diese Ansicht hinzufügen:
CREATE OR REPLACE VIEW our_tables AS
SELECT c.oid, n.nspname AS schemaname, c.relname AS tablename, d.description,
pg_get_userbyid(c.relowner) AS tableowner, t.spcname AS "tablespace",
c.relhasindex AS hasindexes, c.relhasrules AS hasrules, c.reltriggers > 0 AS hastriggers
FROM pg_class c
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
LEFT JOIN pg_tablespace t ON t.oid = c.reltablespace
LEFT JOIN pg_description d ON c.oid = d.objoid
WHERE c.relkind = 'r'::"char";
ALTER TABLE our_tables OWNER TO postgres;
GRANT SELECT, UPDATE, INSERT, DELETE, REFERENCES, TRIGGER ON TABLE our_tables TO postgres;
GRANT SELECT ON TABLE our_tables TO public;
Dann laufen:
SELECT tablename, description FROM our_tables WHERE schemaname = 'public'
Die Ansicht ist eine modifizierte Version der pg_tables anzuzeigen, welche in der Beschreibung Spalte hinzufügt. Sie könnten auch mit der Ansichtsdefinition umgehen, um es zu einer einzigen Abfrage zu machen.
PostgreSQL ist nicht sehr freundlich, aber es ist, weil jeder Benutzer haben Ihre persönliche (nicht standardmäßige) "util-Bibliothek". Unterhalb einer Funktion ('rel_description') meiner Bibliothek kann Ihnen das helfen. –