Re: Retrieving Definition for Composite Type

From: Joe Conway <mail(at)joeconway(dot)com>
To: list(at)racistnames(dot)com
Cc: "PostgreSQL [SQL]" <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Retrieving Definition for Composite Type
Date: 2003-03-13 22:37:10
Message-ID: 3E710816.9060408@joeconway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Jordan S. Jones wrote:
> Basically, I need the SQL equivalent of psql's "\d composite_type"

Start psql with the -E option, and you can see all the internally
generated queries. E.g (ex1_tup is a composite type):

psql -E regression

[snipped all the startup stuff]

regression=# \d ex1_tup
********* QUERY **********
SELECT c.oid,
n.nspname,
c.relname
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE pg_catalog.pg_table_is_visible(c.oid)
AND c.relname ~ '^ex1_tup$'
ORDER BY 2, 3;
**************************

********* QUERY **********
SELECT relhasindex, relkind, relchecks, reltriggers, relhasrules
FROM pg_catalog.pg_class WHERE oid = '1336877'
**************************

********* QUERY **********
SELECT a.attname,
pg_catalog.format_type(a.atttypid, a.atttypmod),
(SELECT substring(d.adsrc for 128) FROM pg_catalog.pg_attrdef d
WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef),
a.attnotnull, a.attnum
FROM pg_catalog.pg_attribute a
WHERE a.attrelid = '1336877' AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
**************************

Composite type "public.ex1_tup"
Column | Type
---------+------
relname | name
colname | name

HTH,

Joe

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Carmen 2003-03-14 00:12:31 Poor performance on a right join
Previous Message jasiek 2003-03-13 22:20:18 Re: Retrieving Definition for Composite Type