Some problem with inet type on PostgreSQL-7.0 - Mailing list pgsql-bugs

From Vadim Passynkov
Subject Some problem with inet type on PostgreSQL-7.0
Date
Msg-id 3947FB04.A5B4E466@rise.ru
Whole thread Raw
List pgsql-bugs
Hi All,

I have some problem with inet type on PostgreSQL-7.0 (FreeBSD
3.4-STABLE)

                 Table "ipaddresses"
  Attribute   |  Type   |          Modifier
--------------+---------+----------------------------
 sysname      | text    | not null
 index        | integer | not null
 ip_addr      | inet    | not null

Indices: ipaddresses_ip_addr,
         ipaddresses_pkey

(sysname, ip_addr) - PRIMARY KEY

      View "ipaddresses_view"
  Attribute   |  Type   | Modifier
--------------+---------+----------
 sysname      | text    |
 index        | integer |
 ip_addr      | inet    |
 ip_netmask   | inet    |

View definition: SELECT ipaddresses.sysname, ipaddresses."index",
ipv4_host(ipaddresses.ip_addr) AS ip_addr,
ipv4_netmask(ipaddresses.ip_addr) AS ip_netmask FROM ipaddresses;


ipv4_host and ipv4_netmask like original host and netmask but return
inet type ( need for ORDER )

CREATE FUNCTION ipv4_host(inet) RETURNS inet AS '
BEGIN
RETURN host($1);
END;
' LANGUAGE 'plpgsql';

CREATE FUNCTION ipv4_netmask(inet) RETURNS inet AS '
BEGIN
RETURN netmask($1);
END;
' LANGUAGE 'plpgsql';

**************************** Problem ************************

select * from ipaddresses where sysname = 'switch01.tor';
   sysname    | index |     ip_addr
--------------+-------+------------------
 switch01.tor |     1 | 127.0/8
 switch01.tor |     2 | 127.0/8
 switch01.tor |     3 | 209.250.155.8/27
(2 rows)

but (sysname, ip_addr) - PRIMARY KEY

127.0/8 - it's not correct output ( real 127.0.0.2/8 and 127.0.0.3/8)

select * from ipaddresses_view where sysname = 'switch01.tor';
   sysname    | index |    ip_addr    |   ip_netmask
--------------+-------+---------------+-----------------
 switch01.tor |     1 | 127.0.0.2     | 255.0.0.0
 switch01.tor |     2 | 127.0.0.3     | 255.0.0.0
 switch01.tor |     3 | 209.250.155.8 | 255.255.255.224
(2 rows)


127.0.0.2 | 255.0.0.0  and 127.0.0.3 | 255.0.0.0 - it's correct output

And of course after pg_dump and restore correct value 127.0.0.2/8 and
127.0.0.3/8 will lose
and will have problem with PRIMARY KEY - (sysname, ip_addr).

--

 Passynkov Vadim, Axxent Inc.

pgsql-bugs by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [unixODBC-DEV] - Re: [HACKERS] info on unixODBC/Postgres driver port to IRIX 6.5.7 64bit
Next
From: Nick Gorham
Date:
Subject: Re: [unixODBC-DEV] - info on unixODBC/Postgres driver port to IRIX 6.5.7 64bit