Re: Fix overflow in justify_interval related functions
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: Joseph Koshakow <koshy44@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@lists.postgresql.org
Date: 2022-02-15T00:59:18Z
Lists: pgsql-hackers
Attachments
On Mon, Feb 14, 2022 at 04:57:07PM -0500, Joseph Koshakow wrote: > On Mon, Feb 14, 2022 at 2:15 PM Nathan Bossart <nathandbossart@gmail.com> wrote: >> Makes sense. So we could likely avoid it for justify_interval, but the >> others are at the mercy of the interval implementation. > > I'm not entirely sure what you mean by "it", but for both > justify_interval and justify_days this commit throws an error if we > try to set the months field above 2^31. > >> +SELECT justify_days(interval '2147483647 months 30 days'); >> +ERROR: interval out of range >> +SELECT justify_interval(interval '2147483647 months 30 days'); >> +ERROR: interval out of range > > That's what these are testing. I think it's possible to avoid overflow in justify_interval() in some cases by pre-justifying the days. I've attached a patch to demonstrate. -- Nathan Bossart Amazon Web Services: https://aws.amazon.com
Commits
-
Handle integer overflow in interval justification functions.
- 54bd1e43ca56 15.0 landed