From: | Florian Pflug <fgp(at)phlo(dot)org> |
---|---|
To: | Merlin Moncure <mmoncure(at)gmail(dot)com> |
Cc: | Jeff Davis <pgsql(at)j-davis(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Martijn van Oosterhout <kleptog(at)svana(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org, Darren Duncan <darren(at)darrenduncan(dot)net> |
Subject: | Re: Range Types and extensions |
Date: | 2011-06-20 17:33:19 |
Message-ID: | A98D8DC3-4368-4B87-A09C-43FB3F78A424@phlo.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Jun20, 2011, at 19:16 , Merlin Moncure wrote:
> On Mon, Jun 20, 2011 at 11:21 AM, Jeff Davis <pgsql(at)j-davis(dot)com> wrote:
> hm, what if there *was( only one range type per base type, but in the
> various contexts where specific ordering and collation was important
> you could optionally pass them in? Meaning, the specific ordering was
> not bound rigidly to the type, but to the operation?
I suggested that previously here
http://archives.postgresql.org/pgsql-hackers/2011-06/msg00846.php
In the ensuing discussion, however, it became clear that by doing so
range types become little more than a pair of values. More specifically,
a range then *doesn't* represent a set of values, because whether or
not a value is "in" the range depends on a specific sort order.
Actually, you'd probably even loose the possibility of having a
normalization function for discrete base types (which makes sure
that we know that "[1,2]" is the same as "[1,3)"), because it's
hard to image one normalization function that works sensibly for
two different orderings.
So by doing that, you effectively turn a RANGE into a quadruple
(lower type, lower_included bool, upper type, upper_included bool).
best regards,
Florian Pflug
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2011-06-20 17:34:30 | Re: Patch - Debug builds without optimization |
Previous Message | Florian Pflug | 2011-06-20 17:32:04 | Re: Boolean operators without commutators vs. ALL/ANY |