PostgreSQL の「データ型」には、実際にはプリミティブ (組み込み) 型、拡張機能によって追加された型、ユーザー定義の複合型、ドメイン、およびテーブルの行型が含まれます。これらのどれがあなたにとって興味があるかは明らかではありません。特定のデータベースで使用可能なすべてのタイプがそのデータベースにリストされているpg_catalog.pg_type
ため、結果をフィルタリングする必要がある場合があります。システム カタログ テーブルのドキュメントをpg_type
参照してください。
利用可能だがインストールされていない拡張機能のタイプはリストされていません。現在のデータベースにインストールされていない拡張機能によって提供される型を一覧表示する方法はありません。
よりきれいなタイプのリストを取得するには、psql
の\dT *
コマンドを使用します。フラグをpsql
付けて実行すると、これが実行する基になる SQL を確認できます。-E
$ psql -E regress
regress=> \dT *
********* QUERY **********
SELECT n.nspname as "Schema",
pg_catalog.format_type(t.oid, NULL) AS "Name",
pg_catalog.obj_description(t.oid, 'pg_type') as "Description"
FROM pg_catalog.pg_type t
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace
WHERE (t.typrelid = 0 OR (SELECT c.relkind = 'c' FROM pg_catalog.pg_class c WHERE c.oid = t.typrelid))
AND NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type el WHERE el.oid = t.typelem AND el.typarray = t.oid)
AND pg_catalog.pg_type_is_visible(t.oid)
ORDER BY 1, 2;
**************************