Re: Fix overflow in justify_interval related functions
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Joseph Koshakow <koshy44@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2022-02-14T18:55:56Z
Lists: pgsql-hackers
Nathan Bossart <nathandbossart@gmail.com> writes: > On Sun, Feb 13, 2022 at 01:28:38PM -0500, Joseph Koshakow wrote: >> +SELECT justify_hours(interval '2147483647 days 24 hrs'); >> +ERROR: interval out of range > The docs [0] claim that the maximum value for interval is 178 million > years, but this test case is only ~6 million. Should we instead rework the > logic to avoid overflow for this case? I think the docs are misleading you on this point. The maximum value of the months part of an interval is 2^31 months or about 178Myr, but what we're dealing with here is days, which likewise caps at 2^31 days. justify_hours is not chartered to transpose up to months, so it can't avoid that limit. regards, tom lane
Commits
-
Handle integer overflow in interval justification functions.
- 54bd1e43ca56 15.0 landed