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