Re: int to inet conversion - Mailing list pgsql-general

From Anton Nikiforov
Subject Re: int to inet conversion
Date
Msg-id 4392BFBC.8050600@nikiforov.ru
Whole thread Raw
In response to Re: int to inet conversion  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Tom Lane wrote:
> Anton Nikiforov <anton@nikiforov.ru> writes:
>
>>is there any function that can translate INT to INET type?
>
>
> Nothing built-in, and given the fact that "inet" no longer means "IPv4",
> it's unlikely we'd add one in the future.  But there's nothing stopping
> you from adding one of your own.  For example
>
> regression=# create or replace function int2inet(int) returns inet as $$
> regression$# declare oct1 int;
> regression$#   oct2 int;
> regression$#   oct3 int;
> regression$#   oct4 int;
> regression$# begin
> regression$#   oct1 := ((($1 >> 24) % 256) + 256) % 256;
> regression$#   oct2 := ((($1 >> 16) % 256) + 256) % 256;
> regression$#   oct3 := ((($1 >>  8) % 256) + 256) % 256;
> regression$#   oct4 := ((($1      ) % 256) + 256) % 256;
> regression$#   return oct1 || '.' || oct2 || '.' || oct3 || '.' || oct4;
> regression$# end$$ language plpgsql strict immutable;
> CREATE FUNCTION
> regression=# select int2inet(-1062726656);
>    int2inet
> --------------
>  192.168.20.0
> (1 row)
>
> There's probably a better way to do the shifting-and-masking, but that
> was the first thing that came to mind.  (Actually, if you are planning
> to push a whole lot of data through this, it might be worth your time
> to write something in C.  But for a one-shot data conversion task this
> is probably plenty good enough.)
>
>             regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
>        subscribe-nomail command to majordomo@postgresql.org so that your
>        message can get through to the mailing list cleanly
>
Thanks alot, Mr. Lane
i was just thinking that there was something inside postgres to convert
this types.
But now will try to write this functions :)

Best regards,
Anton

Attachment

pgsql-general by date:

Previous
From: Eugene Prokopiev
Date:
Subject: function in index expression and unnecessary function calls in select
Next
From: Martijn van Oosterhout
Date:
Subject: Re: function in index expression and unnecessary function calls in select