From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Joachim Wieland <joe(at)mcknight(dot)de> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: CIDR/INET improvements |
Date: | 2006-01-07 17:50:23 |
Message-ID: | 29560.1136656223@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-patches |
Joachim Wieland <joe(at)mcknight(dot)de> writes:
> Actually both types are not binary compatible, since they have a
> type component that is either 0 or 1, depending on whether it is of type
> INET or CIDR.
The whole question of the relationship of those types really needs to be
looked at more carefully. We've got this schizophrenic idea that they
sometimes are the same type and sometimes are not. ISTM that either
they are the same type (and having a bit within the data is reasonable)
or they are distinct types (in which case the bit within the data should
be redundant). I'm not sure which is better.
I think the reason why things are as they are right now is to avoid
needing a pile of redundant-seeming pg_proc entries, eg you'd need
both abbrev(inet) and abbrev(cidr) if you were taking a hard line
about them being different types.
You can *not* just throw in a cast that removes the bit without breaking
many of those functions for the CIDR case. For instance abbrev behaves
differently depending on the state of the bit:
regression=# select abbrev(cidr '10.1.0.0/16');
abbrev
---------
10.1/16
(1 row)
regression=# select abbrev(inet '10.1.0.0/16');
abbrev
-------------
10.1.0.0/16
(1 row)
> What about functions to get/set a specific byte, for example:
I would vote against adding any such thing in the absence of any strong
demand for it. I think functions that expose the underlying data just
encourage people to write IPv4-only code. If you can't define and use
the function in a way that handles both IPv4 and IPv6, you probably
shouldn't have it.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-01-07 18:08:21 | Re: catalog corruption bug |
Previous Message | Jeremy Drake | 2006-01-07 17:39:25 | Re: catalog corruption bug |
From | Date | Subject | |
---|---|---|---|
Next Message | Joachim Wieland | 2006-01-07 19:18:12 | Re: CIDR/INET improvements |
Previous Message | Joachim Wieland | 2006-01-07 13:02:48 | CIDR/INET improvements |