Re: empty range - Mailing list pgsql-hackers

From Tom Lane
Subject Re: empty range
Date
Msg-id 19461.1579188062@sss.pgh.pa.us
Whole thread Raw
In response to Re: empty range  (Emre Hasegeli <emre@hasegeli.com>)
Responses Re: empty range  (david.turon@linuxbox.cz)
List pgsql-hackers
Emre Hasegeli <emre@hasegeli.com> writes:
>> It's only suggestion, i don't now if somebody wants store empty range without bounds.

> I thought about the same while developing the BRIN inclusion operator
> class.  I am not sure how useful empty ranges are in practice, but
> keeping their bound would only bring more flexibility, and eliminate
> special cases on most of the range operators.  For reference, we allow
> empty boxes, and none of the geometric operators has to handle them
> specially.

I think it'd just move the special cases somewhere else.  Consider

regression=# select int4range(4,4) = int4range(5,5);
 ?column?
----------
 t
(1 row)

How do you preserve that behavior ... or if you don't, how much
damage does that do to the semantics of ranges?  Right now there's
a pretty solid set-theoretic basis for understanding what a range is,
ie two ranges are the same if they include the same sets of elements.
It seems like that goes out the window if we don't consider that
all empty ranges are the same.

BTW, I think the main reason for all the bound-normalization pushups
is to try to have a rule that ranges that are set-theoretically equal
will look the same.  That also goes out the window if we make
empty ranges look like this.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Justin Pryzby
Date:
Subject: Re: progress report for ANALYZE
Next
From: Antonin Houska
Date:
Subject: Re: [HACKERS] WIP: Aggregation push-down