| От | Michael Fuhr |
|---|---|
| Тема | Re: inet-type sequence |
| Дата | |
| Msg-id | 20050129214702.GA30278@winnie.fuhr.org обсуждение |
| Ответ на | Re: inet-type sequence (Michael Fuhr <mike@fuhr.org>) |
| Список | pgsql-general |
On Sat, Jan 29, 2005 at 02:35:06PM -0700, Michael Fuhr wrote:
> CREATE FUNCTION bigint2inet(bigint) RETURNS inet AS '
> BEGIN
> RETURN cidr(''0x'' || lpad(to_hex($1), 8, ''0''));
> END;
> ' LANGUAGE plpgsql IMMUTABLE STRICT;
I should point out that the above function is intended only as a
trivial example. It's designed for IPv4 address and will have
problems when the bigint value exceeds 2^32 - 1 (4294967295):
SELECT bigint2inet((2^32 - 1)::bigint);
bigint2inet
-----------------
255.255.255.255
(1 row)
SELECT bigint2inet((2^32)::bigint);
bigint2inet
-------------
16.0.0.0
(1 row)
A more robust implementation is left as an exercise for the reader.
--
Michael Fuhr
http://www.fuhr.org/~mfuhr/
В списке pgsql-general по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера