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

Reply via email to