«Типы данных» в PostgreSQL на самом деле включают в себя примитивные (встроенные) типы, типы, добавляемые расширениями, определяемые пользователем составные типы, домены и типы строк таблиц. Непонятно, какие из них вас интересуют. Все типы, доступные в данной базе данных, перечислены в pg_catalog.pg_type
этой базы данных, поэтому вам может потребоваться отфильтровать результаты. См. документацию по pg_type
таблице системного каталога.
Типы доступных, но не установленных расширений не перечислены. Невозможно перечислить типы, предоставляемые расширениями, не установленными в текущей базе данных.
Чтобы получить более красивый список типов, используйте команду psql
\dT *
. Вы можете увидеть базовый SQL, который выполняется, запустив psql
с флагом -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;
**************************
person
Craig Ringer
schedule
03.05.2013