How do you intend to handle the mask and family parts of the object in
converting it to an int, not to mention the ipv6 difficulties you mention?
A better way might be to add some extra functions, ISTM.
cheers
andrew
Kai wrote:
>Hello All,
>
>I've been pondering the discussed subject a few times, and came along a few
>things that I think are missing from the default set of typeconversions
>within postgres.
>
>After working regularly with inet values in sql, it would be nice to be able
>to do this:
>
> => select '192.168.1.1'::inet + 1 as result;
> result
> -------------
> 192.168.1.2
> (1 row)
>
> => select '192.168.1.255'::inet - '192.168.1.0'::inet as difference;
> difference
> ----------------
> 255
> (1 row)
>
>or simply this:
>
> => select '192.168.1.1'::inet::bigint
> bigint
> ------------
> 3232235777
>
>
>In the old postgres 7.3 the data was stored in the database being a big
>integer anyway, but in the new ipv6 compatible stuff I lost track. I can
>probably write the functions in C if theres more interest in them, but I'm
>not on track on how to define all the casting stuff in the postgresql system
>tables, nor the sticky subject on how to handle ipv6.
>
>
>Or maybe someone else was pondering the idea too and is far better at
>writing C? :-)
>
>
>My conclusion is that the selects above should be among the default set of
>operations on inet values in PostgreSQL, being subtraction and addition. If
>not I'd like to be proven wrong.
>
>
>Regards,
>
>
>Kai
>
>---------------------------(end of broadcast)---------------------------
>TIP 3: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faq
>
>
>