BUG #9455: Subtracting an IPv6 /64 network() from its broadcast() results in an out of range error - Mailing list pgsql-bugs

From [email protected]
Subject BUG #9455: Subtracting an IPv6 /64 network() from its broadcast() results in an out of range error
Date
Msg-id [email protected]
Whole thread Raw
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      9455
Logged by:          Martin A. Brooks
Email address:      [email protected]
PostgreSQL version: 9.3.3
Operating system:   Kubuntu 13.10 64 bit
Description:

Hello

By accident I did this:

ipso=# select broadcast('10.0.0.0/8') - network('10.0.0.0/8');
 ?column?
----------
 16777215
(1 row)

ipso=# select
broadcast('2001:ba8:1f1:f12c::/64')-network('2001:ba8:1f1:f12c::/64');
ERROR:  result is out of range


ipso=# select broadcast('2001:ba8:1f1:f12c::/64');
                broadcast
------------------------------------------
 2001:ba8:1f1:f12c:ffff:ffff:ffff:ffff/64
(1 row)

ipso=# select network('2001:ba8:1f1:f12c::/64');
        network
------------------------
 2001:ba8:1f1:f12c::/64
(1 row)


It's arguable that broadcast doesn't make much sense for IPv6 ranges.
Special casing v6 ranges for my purposes would be fine, but this result is
more surprise that I expected.

Regards

Martin.

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #9371: pg_dump acquiring ROW EXCLUSIVE locks on tables
Next
From: [email protected]
Date:
Subject: BUG #9464: PANIC with 'failed to re-find shared lock object'