Re: int to inet conversion [or Re: inet to bigint?]

From: Kai <kai(at)xs4all(dot)net>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Re: int to inet conversion [or Re: inet to bigint?]
Date: 2005-12-08 15:36:12
Message-ID: 20051208153612.GF20706@xs4all.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


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

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2005-12-08 15:53:02 Re: BUG #1467: fe_connect doesn't handle EINTR right
Previous Message Dmitry Karasik 2005-12-08 15:29:18 Re: implement prepared queries in plperl