Re: BUG #7575: "between" does not work properly with inet/cidr addresses
От | Mr Dash Four |
---|---|
Тема | Re: BUG #7575: "between" does not work properly with inet/cidr addresses |
Дата | |
Msg-id | 506837BC.3050305@googlemail.com обсуждение исходный текст |
Ответ на | Re: BUG #7575: "between" does not work properly with inet/cidr addresses (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: BUG #7575: "between" does not work properly with inet/cidr addresses
|
Список | pgsql-bugs |
> 10.1.1.0/24 is different from, and sorts before, 10.1.1.0/32 > (which is what '10.1.1.0'::inet is an abbreviation for). > > You might find that the net address inclusion operators (<< and friends) > provide the semantics you're looking for. That isn't possible in my case, because on the right side I have IP ranges (from-to) and currently there isn't a PostgreSQL function which converts IP ranges to cidr/inet, but even if there was such function available, this may produce more than one cidr/inet ranges, so it won't be of much use. Employing << and friends is of no use either, as they work on inet/cidr on the right side - I can't use something like "10.1.1.0/24 << (10.1.1.0-10.1.1.255)" for example. > BETWEEN only knows about > btree sort ordering, which is fundamentally a brick or two shy of a > load when considering two-dimensional quantities such as netmasks. > If BETWEEN can't handle operations between cidr/inet and IP ranges (which is what I highlighted in the initial bug report), it should either be fixed to produce the correct result or it should return an error. Leaving things as they are can't be allowed.
В списке pgsql-bugs по дате отправления: