postgres=# select *,(select typname from pg_type where oid = castsource) as
source,(select typname from pg_type where oid = casttarget) as target from
pg_cast where castsource = 25 or casttarget = 25;
castsource | casttarget | castfunc | castcontext | source | target
------------+------------+----------+-------------+---------+----------
25 | 2205 | 1079 | i | text | regclass
25 | 1042 | 0 | i | text | bpchar
25 | 1043 | 0 | i | text | varchar
1042 | 25 | 401 | i | bpchar | text
1043 | 25 | 0 | i | varchar | text
18 | 25 | 946 | i | char | text
19 | 25 | 406 | i | name | text
25 | 18 | 944 | a | text | char
25 | 19 | 407 | i | text | name
650 | 25 | 730 | a | cidr | text
869 | 25 | 730 | a | inet | text
16 | 25 | 2971 | a | bool | text
142 | 25 | 2922 | a | xml | text
25 | 142 | 2896 | e | text | xml
(14 rows)
Why do we need assignment casts from cidr, inet, bool, and xml to text? These
all seem redundant since there's effectively an assignment cast from every
data type to text anyways:
postgres=# delete from pg_cast where casttarget = 25;
DELETE 8
postgres=# insert into t values ('1.0.0.0'::cidr);
INSERT 0 1
postgres=# select * from t;
t
------------
1.0.0.0/32
(1 row)
postgres=# \d t
Table "public.t"
Column | Type | Modifiers
--------+------+-----------
t | text |
--
Gregory Stark
EnterpriseDB http://www.enterprisedb.com
Ask me about EnterpriseDB's Slony Replication support!
---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at
http://www.postgresql.org/about/donate