Re: BUG #13488: Wrong netmask calculation
От | Tom Lane |
---|---|
Тема | Re: BUG #13488: Wrong netmask calculation |
Дата | |
Msg-id | 29010.1436199309@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | BUG #13488: Wrong netmask calculation (stn@inbox.ru) |
Ответы |
Re: BUG #13488: Wrong netmask calculation
|
Список | 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 по дате отправления: