postgresql7.1
SELECT a.attnum,
a.attname AS field,
t.typname AS type,
a.attnotnull AS not_null,
a.atthasdef as has_default
FROM
pg_class c, pg_attribute a, pg_type t
WHERE
c.relname = :name AND
a.attnum > 0 AND
a.attrelid = c.oid AND
a.atttypid = t.oid
ORDER BY
a.attnum;
SELECT nspname as namespace,
relname as tablename,
pg_catalog.pg_get_userbyid(relowner) AS tableowner,
relhasindex as hasindexes,
relhasrules as hasrules,
reltriggers as hastriggers,
pg_class.oid as table_id,
pg_catalog.obj_description(pg_class.oid,'pg_class') as
table_description,
relacl,
CASE WHEN relkind = 'r' THEN 'table' WHEN relkind = 's' THEN 'special' ELSE 'view' END as reltype,
CASE WHEN relkind = 'v' THEN pg_get_viewdef(pg_class.oid) ELSE NULL END as view_definition
FROM pg_catalog.pg_class
JOIN pg_catalog.pg_namespace ON (relnamespace = pg_namespace.oid)
WHERE relkind IN ('r', 's', 'v')
AND relname = :name
SELECT pg_constraint.oid,
pg_namespace.nspname AS namespace,
pg_constraint.conname AS constraint_name,
conkey AS constraint_key,
confkey AS constraint_fkey,
(select relname from pg_class where pg_class.oid = confrelid) as table_name,
confrelid
FROM pg_catalog.pg_constraint
JOIN pg_catalog.pg_class ON (pg_class.oid = conrelid)
JOIN pg_catalog.pg_class AS pc ON (pc.oid = confrelid)
JOIN pg_catalog.pg_namespace ON (pg_class.relnamespace = pg_namespace.oid)
JOIN pg_catalog.pg_namespace AS pn ON (pn.oid = pc.relnamespace)
WHERE contype = 'f'
AND conrelid = :table_id
SELECT distinct
pg_constraint.conname AS constraint_name,
(select relname from pg_class where pg_class.oid = confrelid) as ref_table_name,
(select relname from pg_class where pg_class.oid = conrelid) as table_name
FROM pg_catalog.pg_constraint
JOIN pg_catalog.pg_class ON (pg_class.oid = conrelid)
JOIN pg_catalog.pg_class AS pc ON (pc.oid = confrelid)
JOIN pg_catalog.pg_namespace ON (pg_class.relnamespace = pg_namespace.oid)
JOIN pg_catalog.pg_namespace AS pn ON (pn.oid = pc.relnamespace)
WHERE contype = 'f'
AND confrelid = :table_id
SELECT pg_catalog.format_type(t.oid, NULL) AS typname,
pg_catalog.format_type(t.oid, NULL) AS typname2
FROM (pg_catalog.pg_type t
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace)
LEFT JOIN pg_catalog.pg_user pu ON t.typowner = pu.usesysid
WHERE (t.typrelid = 0 OR (SELECT c.relkind IN ('c') FROM
pg_catalog.pg_class c
WHERE c.oid = t.typrelid AND c.relnamespace NOT IN (SELECT oid FROM
pg_catalog.pg_namespace WHERE nspname LIKE 'pg_%')))
AND pg_catalog.pg_type_is_visible(t.oid)
ORDER BY typname