Re: BUG #17128: minimum numeric 'integer' is -2147483647 not -2147483648 as documented
John Naylor <john.naylor@enterprisedb.com>
From: John Naylor <john.naylor@enterprisedb.com>
To: kjs@teews.com, pgsql-bugs@lists.postgresql.org
Date: 2021-07-30T15:05:14Z
Lists: pgsql-bugs
On Fri, Jul 30, 2021 at 7:53 AM PG Bug reporting form < noreply@postgresql.org> wrote: > The PGTYPESnumeric_to_int function deems -2147483648 to be invalid even > though it is a perfectly valid 32-bit integer because the code compares to > -INT_MAX which resolves to -2147483647 on the Fedora/Red Hat and Solaris > versions I have available to check against. > - if (l < -INT_MAX || l > INT_MAX) > + if (l < (-INT_MAX - 1) || l > INT_MAX) Yeah, that looks like it should be INT_MIN instead. I'll see about making that happen. Thanks for the report! -- John Naylor EDB: http://www.enterprisedb.com
Commits
-
Fix range check in ECPG numeric to int conversion
- 231c19a8987a 10.18 landed
- cfcb0ceabde1 9.6.23 landed
- f051b87ace6d 14.0 landed
- 171bf1cea579 13.4 landed
- c7181a32c57d 11.13 landed
- d9589eb62a2b 12.8 landed
- 5fcf3945bd90 15.0 landed