Re: Operands don't affect result (CONSTANT_EXPRESSION_RESULT) (src/backend/utils/adt/jsonfuncs.c)
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Ranier Vilela <ranier.vf@gmail.com>
Cc: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2021-02-11T04:46:08Z
Lists: pgsql-hackers
Ranier Vilela <ranier.vf@gmail.com> writes: > *long* 4 *long int*, *signed long int* -2.147.483.648 a 2.147.483.647 > Therefore long never be > INT_MAX at Windows 64 bits. > Thus lindex is always false in this expression: > if (errno != 0 || badp == c || *badp != '\0' || lindex > INT_MAX || lindex > < INT_MIN) Warnings about this are purest nanny-ism. At the same time, I think this code could be improved; but the way to do that is to use strtoint(), rather than kluging the choice of datatype even further. regards, tom lane
Commits
-
Simplify jsonfuncs.c code by using strtoint() not strtol().
- 69036aafb9a8 14.0 landed