summaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2018-03-12 12:17:58 -0400
committerPeter Eisentraut <peter_e@gmx.net>2018-03-13 09:56:25 -0400
commit6cf86f435472b27bbc5e22c713bca08aa2d94af7 (patch)
treec1722f6bb851bcb468a2d01edf23f872c0b89597 /src/backend/parser
parent377b5ac4845c5ffbf992ee95c32d7d16d38b9081 (diff)
Change internal integer representation of Value node
A Value node would store an integer as a long. This causes needless portability risks, as long can be of varying sizes. Change it to use int instead. All code using this was already careful to only store 32-bit values anyway. Reviewed-by: Michael Paquier <michael@paquier.xyz>
Diffstat (limited to 'src/backend/parser')
-rw-r--r--src/backend/parser/scan.l9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l
index eedef7c0052..97d4dee6282 100644
--- a/src/backend/parser/scan.l
+++ b/src/backend/parser/scan.l
@@ -1216,12 +1216,9 @@ process_integer_literal(const char *token, YYSTYPE *lval)
errno = 0;
val = strtol(token, &endptr, 10);
- if (*endptr != '\0' || errno == ERANGE
-#ifdef HAVE_LONG_INT_64
- /* if long > 32 bits, check for overflow of int4 */
- || val != (long) ((int32) val)
-#endif
- )
+ if (*endptr != '\0' || errno == ERANGE ||
+ /* check for overflow of int */
+ val != (int) val)
{
/* integer too large, treat it as a float */
lval->str = pstrdup(token);