Re: Why is NULL = unbounded for rangetypes?
Andreas Joseph Krogh <andreak@officenet.no>
From: Andreas Joseph Krogh <andreak@officenet.no>
To: pgsql-general@postgresql.org
Date: 2013-08-30T09:22:56Z
Lists: pgsql-general
Attachments
- (unnamed) (text/html)
<div>På fredag 30. august 2013 kl. 03:23:09, skrev Jeff Davis <<a href="mailto:pgsql@j-davis.com" target="_blank">pgsql@j-davis.com</a>>:</div> <blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> <div style="display:inline; font-family: monospace; font-size: 12px;">On Tue, 2013-07-09 at 10:45 +0200, Andreas Joseph Krogh wrote:<br> > I would expect the queries above to return FALSE and have to use<br> > INFINITY to have them return TRUE. I don't understand what you mean by<br> > ranges not allowing either bound to be NULL as it seems to be the case<br> > (as in "it works").<br> <br> Although passing NULL to the constructor works, it does *not* create a<br> range where one bound is NULL. It actually creates an unbounded range;<br> that is, a range where one bound is infinite.<br> <br> NULL semantics are far too confusing to be useful with ranges. For<br> instance, if ranges did support NULLs; the queries you mention would<br> have to return NULL, not FALSE.</div> </blockquote> <div> </div> <div>But I agree that returning NULL would be OK, then it would be easy to catch in queries when starting playing with range-types in queries. Having it implicitly mean infinity comes as a surprise, to me at least.</div> <div> </div> <div>But now that I know this it's exactly not a blocker...</div> <div> </div> <div class="origo-email-signature">--<br> Andreas Joseph Krogh <andreak@officenet.no> mob: +47 909 56 963<br> Senior Software Developer / CTO - OfficeNet AS - http://www.officenet.no<br> Public key: http://home.officenet.no/~andreak/public_key.asc</div> <div> </div>