Re: Infinite Interval
Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
From: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
To: Joseph Koshakow <koshy44@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-12-12T13:05:45Z
Lists: pgsql-hackers
Attachments
- 0001-Support-infinite-interval.patch (text/x-patch) patch 0001
Hi Joseph, I stumbled upon this requirement a few times. So I started working on this support in my spare time as a hobby project to understand horology code in PostgreSQL. This was sitting in my repositories for more than an year. Now that I have someone else showing an interest, it's time for it to face the world. Rebased it, fixed conflicts. PFA patch implementing infinite interval. It's still WIP, there are TODOs in the code and also the commit message lists things that are known to be incomplete. You might want to assess expected output carefully On Sun, Dec 11, 2022 at 12:51 AM Joseph Koshakow <koshy44@gmail.com> wrote:> > The proposed design from the most recent thread was to reserve > INT32_MAX months for infinity and INT32_MIN months for negative > infinity. As pointed out in the thread, these are currently valid > non-infinite intervals, but they are out of the documented range. The patch uses both months and days together to avoid this problem. Please feel free to complete the patch, work on review comments etc. I will help as and when I find time. -- Best Wishes, Ashutosh Bapat
Commits
-
Support +/- infinity in the interval data type.
- 519fc1bd9e9d 17.0 landed
-
Avoid integer overflow hazard in interval_time().
- 3850d4dec1d9 17.0 landed
-
Guard against overflow in make_interval().
- b2d55447a563 17.0 landed
-
Fix minmax-multi on infinite date/timestamp values
- 8da86d62a112 17.0 cited
-
Optimize various aggregate deserialization functions, take 2
- 0c882a298881 17.0 cited
-
Remove dead code in DecodeInterval()
- d6d1430f4043 17.0 cited
-
Accept "+infinity" in date and timestamp[tz] input.
- 2ceea5adb026 16.0 cited
-
Fix overflow hazards in interval input and output conversions.
- e39f99046710 15.0 cited