Re: SQL equivalent to \dT - Mailing list pgsql-general

From Pavel Stehule
Subject Re: SQL equivalent to \dT
Date
Msg-id 162867790809020841i4e69a4o8d7fa463fab5505d@mail.gmail.com
Whole thread Raw
In response to SQL equivalent to \dT  (Bram Kuijper <a.l.w.kuijper@rug.nl>)
List pgsql-general
Hello

2008/9/2 Bram Kuijper <a.l.w.kuijper@rug.nl>:
> Hi all,
>
> if I want to get a list of types (ie., data types or enums), then I can use
> the '\dT' command from within the postgreSQL client.
>

run psql with -E parameter. You will see all SQL statements used for
metacommands.

[pavel@localhost ~]$ psql -E postgres
psql (8.4devel)
Type "help" for help.

postgres=# \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;
**************************

                                              List of data types
   Schema   |            Name             |
Description
------------+-----------------------------+-------------------------------------------------------------------
 pg_catalog | abstime                     | absolute, limited-range
date and time (Unix system time)
 pg_catalog | aclitem                     | access control list
 pg_catalog | "any"                       |
 pg_catalog | anyarray                    |
 pg_catalog | anyelement                  |

regards
Pavel Stehule

> However, I cannot seem to figure out what the SQL alternative is to the \dT
> command, so that I might get a list of types scriptable by SQL.
>
> For example, if I create an ENUM myself:
> CREATE TYPE bird AS ENUM('duck','goose');
>
> a quick look through the various parts of the information schema did not
> reveal in which place this enum is stored. Is the information schema the
> correct place to look for this? Which SQL statement do I need to get a list
> of user-defined types?
>
> thanks in advance,
>
> Bram Kuijper
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

pgsql-general by date:

Previous
From: "Richard Broersma"
Date:
Subject: Re: MERGE: performance advices
Next
From: "Pavel Stehule"
Date:
Subject: Re: pg_catalog forward compatibility