From: | Jeff Davis <pgsql(at)j-davis(dot)com> |
---|---|
To: | Paul Jungwirth <pj(at)illuminatedcomputing(dot)com>, Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: range_agg |
Date: | 2019-07-01 22:38:30 |
Message-ID: | ba323e489b98029be5ba2d5c5cbc99795f333f48.camel@j-davis.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, 2019-05-03 at 15:56 -0700, Paul Jungwirth wrote:
> Hello,
>
> I wrote an extension to add a range_agg function with similar
> behavior
> to existing *_agg functions, and I'm wondering if folks would like
> to
> have it in core? Here is the repo:
> http://github.com/pjungwir/range_agg
This seems like a very useful extension, thank you.
For getting into core though, it should be a more complete set of
related operations. The patch is implicitly introducing the concept of
a "multirange" (in this case, an array of ranges), but it's not making
the concept whole.
What else should return a multirange? This patch implements the union-
agg of ranges, but we also might want an intersection-agg of ranges
(that is, the set of ranges that are subranges of every input). Given
that there are other options here, the name "range_agg" is too generic
to mean union-agg specifically.
What can we do with a multirange? A lot of range operators still make
sense, like "contains" or "overlaps"; but "adjacent" doesn't quite
work. What about new operations like inverting a multirange to get the
gaps?
Do we want to continue with the array-of-ranges implementation of a
multirange, or do we want a first-class multirange concept that might
eliminate the boilerplate around defining all of these operations?
If we have a more complete set of operators here, the flags for
handling overlapping ranges and gaps will be unnecessary.
Regards,
Jeff Davis
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2019-07-01 23:03:53 | Re: Are there still non-ELF BSD systems? |
Previous Message | Alvaro Herrera | 2019-07-01 21:46:48 | Re: Add parallelism and glibc dependent only options to reindexdb |