Re: inet/cidr wierdness (casting)

Lists: pgsql-hackers
From: Alex Pilosov <alex(at)pilosoft(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: inet/cidr wierdness (casting)
Date: 2001-06-12 13:58:21
Message-ID: Pine.BSO.4.10.10106120955380.17529-100000@spider.pilosoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

In case Tom isn't sick of me yet...

users=# select '10.1.2.3/24'::inet::cidr;
?column?
-------------
10.1.2.3/24

while:

users=# select '10.1.2.3/24'::cidr;
ERROR: invalid CIDR value '10.1.2.3/24': has bits set to right of mask

Apparently, since there's no explicit function to cast from inet to cidr,
postgresql assumes its always safe to do so, as they are
binary-compatible. Anyone mind if I create explicit function for this so
this could be flagged as error?

-alex


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Alex Pilosov <alex(at)pilosoft(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: inet/cidr wierdness (casting)
Date: 2001-06-12 15:19:36
Message-ID: 8770.992359176@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Alex Pilosov <alex(at)pilosoft(dot)com> writes:
> Apparently, since there's no explicit function to cast from inet to cidr,
> postgresql assumes its always safe to do so, as they are
> binary-compatible.

Yes. I've thought for awhile that it was a mistake to treat them as
binary-compatible. However, you'd need a lot more operator/function
declarations if they're not so marked.

> Anyone mind if I create explicit function for this so
> this could be flagged as error?

Won't help if they are binary compatible...

regards, tom lane