| From: | Mr Dash Four <mr(dot)dash(dot)four(at)googlemail(dot)com> |
|---|---|
| To: | pgsql-bugs(at)postgresql(dot)org |
| Subject: | Re: BUG #7575: "between" does not work properly with inet/cidr addresses |
| Date: | 2012-09-30 12:14:52 |
| Message-ID: | 506837BC.3050305@googlemail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | 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.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Heikki Linnakangas | 2012-10-01 10:38:49 | Re: BUG #7534: walreceiver takes long time to detect n/w breakdown |
| Previous Message | Tom Lane | 2012-09-30 05:26:02 | Re: BUG #7575: "between" does not work properly with inet/cidr addresses |