Re: BUG #13488: Wrong netmask calculation - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #13488: Wrong netmask calculation
Date
Msg-id 29010.1436199309@sss.pgh.pa.us
Whole thread Raw
In response to BUG #13488: Wrong netmask calculation  (stn@inbox.ru)
Responses Re: BUG #13488: Wrong netmask calculation  ("Gunnar \"Nick\" Bluth" <gunnar.bluth@pro-open.de>)
List pgsql-bugs
stn@inbox.ru writes:
> database=# select inet(routedest), inet(routemask) from iprouteinterface
> group by routedest, routemask order by routedest limit 3;
>    inet    |    inet
> -----------+-------------
>  0.0.0.0   | 0.0.0.0
>  10.1.0.0  | 255.255.0.0
>  10.10.0.0 | 255.255.0.0
> (3 rows)

> database=# select inet(routedest), cidr(routemask) from iprouteinterface
> group by routedest, routemask order by routedest limit 3;
>    inet    |      cidr
> -----------+----------------
>  0.0.0.0   | 0.0.0.0/32
>  10.1.0.0  | 255.255.0.0/32
>  10.10.0.0 | 255.255.0.0/32
> (3 rows)
> database=# select routedest, network(inet(routemask)) from iprouteinterface
> group by routedest, routemask order by routedest limit 3;
>  routedest |    network
> -----------+----------------
>  0.0.0.0   | 0.0.0.0/32
>  10.1.0.0  | 255.255.0.0/32
>  10.10.0.0 | 255.255.0.0/32
> (3 rows)

You did not say what you think is wrong here, but AFAICS all of these
results are probably per the documentation (I say "probably" because,
without having seen the input data, it's not entirely clear what
calculations you're actually doing).

I suspect what you are wishing for is a function that would take the
inputs "10.1.0.0" and "255.255.0.0" and produce the CIDR value 10.1/16.
That would be a reasonable thing to offer, perhaps, but it's not there
now.  In the meantime you could probably build it easily enough as a
SQL function, at least for the set of mask values that actually occur
in your data.

            regards, tom lane

pgsql-bugs by date:

Previous
From: stn@inbox.ru
Date:
Subject: BUG #13488: Wrong netmask calculation
Next
From: Heikki Linnakangas
Date:
Subject: Re: PQexec() hangs on OOM