From: | Thom Brown <thom(at)linux(dot)com> |
---|---|
To: | Jeff Davis <pgsql(at)j-davis(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Florian Pflug <fgp(at)phlo(dot)org>, Robert Haas <robertmhaas(at)gmail(dot)com>, Erik Rijkers <er(at)xs4all(dot)nl>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Range Types - typo + NULL string constructor |
Date: | 2011-10-10 17:39:20 |
Message-ID: | CAA-aLv6-Zoj4cP+-vhqbwV7kNvnFdJ0S2unyRNunViNwjr3U+A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 10 October 2011 18:31, Jeff Davis <pgsql(at)j-davis(dot)com> wrote:
> On Mon, 2011-10-10 at 12:53 -0400, Tom Lane wrote:
>> > The "canonicalize" function (specified at type creation time) allows you
>> > to specify the canonical output representation. So, I can change the
>> > canonical form for discrete ranges to use '[]' notation if we think
>> > that's more expected.
>>
>> What if I write '[1,INT_MAX]'::int4range? The open-parenthesis form will
>> fail with an integer overflow. I suppose you could canonicalize it to
>> an unbounded range, but that seems unnecessarily surprising.
>
> So, are you suggesting that I canonicalize to '[]' then? That seems
> reasonable to me, but there's still some slight awkwardness because
> int4range(1,10) would be '[1,9]'.
Why? int4range(1,10,'[]') returns:
int4range
-----------
[1,11)
(1 row)
Which if corrected to display the proposed way would just be '[1,10]'.
So the default boundaries should be '[]' as opposed to '[)' as it is
now.
--
Thom Brown
Twitter: @darkixion
IRC (freenode): dark_ixion
Registered Linux user: #516935
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
From | Date | Subject | |
---|---|---|---|
Next Message | Jeff Davis | 2011-10-10 17:41:42 | Re: Range Types - typo + NULL string constructor |
Previous Message | Kohei KaiGai | 2011-10-10 17:38:43 | Re: [v9.2] DROP statement reworks |