From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
---|---|
To: | Vadim Passynkov <pvi(at)axxent(dot)ca> |
Cc: | pgsql-bugs(at)postgresql(dot)org, pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Some problem with inet type on PostgreSQL-7.0 |
Date: | 2000-06-17 13:02:29 |
Message-ID: | Pine.LNX.4.21.0006171324520.348-100000@localhost.localdomain |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-sql |
I can confirm your problem but there's no known fix. The truth is that the
inet/cidr types have quite a number of bogosities but no one understands
them well enough to undertake fixing them.
Vadim Passynkov writes:
> 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).
>
>
--
Peter Eisentraut Sernanders väg 10:115
peter_e(at)gmx(dot)net 75262 Uppsala
http://yi.org/peter-e/ Sweden
From | Date | Subject | |
---|---|---|---|
Next Message | Javier Quiles | 2000-06-20 10:21:06 | ERROR: CREATE DATABASE solved |
Previous Message | Peter Eisentraut | 2000-06-17 13:02:21 | Re: Date or Documentation bug? |
From | Date | Subject | |
---|---|---|---|
Next Message | Craig May | 2000-06-17 23:07:07 | Database Transfer |
Previous Message | James Carpenter | 2000-06-17 09:39:07 | Determining Array size. (HACK) |