On Fri, Feb 17, 2012 at 11:32 PM, Jay Levitt <jay.lev...@gmail.com> wrote:

> Alexander Korotkov wrote:
>
>> On Fri, Feb 17, 2012 at 11:00 PM, Jay Levitt <jay.lev...@gmail.com
>> <mailto:jay.lev...@gmail.com>> wrote:
>>
>>     At first I thought this posed a challenge for union; if I have these
> points:
>
>>
>>    (1,2)
>>    (2,1)
>>    (1,NULL)
>>
>>    what's the union? I think the answer is to treat NULL box coordinates
>>    like LL = -infinity, UR = infinity, or (equivalently, I think) to store
>>    a saw_nulls bit in addition to LL and UR.
>>
>> Similar problem appears at GiST indexing of ranges, because range can be
>> empty. There additional "contain empty" flag was introduced. This "contain
>> empty" flag indicates that underlying value can be empty. So, this flag is
>> set when union with empty range or other range with this flag set. It's
>> likely you need similar flag for each dimension.
>>
>
> Ah, yes, exactly the same problem. So what led you to add a flag instead
> of using the range NULL..NULL? I'm on the fence about choosing.


At first, range bounds can't be NULL :) At second, if we have range
(a;b)+"contain empty" in internal page, both facts:
1) All normal underlying ranges are contained in (a;b).
2) There can be empty underlying ranges.
are useful for search.

------
With best regards,
Alexander Korotkov.

Reply via email to