diff options
author | Bruce Momjian <bruce@momjian.us> | 1999-07-08 00:27:01 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1999-07-08 00:27:01 +0000 |
commit | 5035d7b9855bf43a1cb1c86fb842d6930cfb09db (patch) | |
tree | eae50fdde247e4df4c283a0c243d81fd6a99e7a4 /src | |
parent | a6c688d9cd56ed4f8e777288b9a16de88663d0ea (diff) | |
download | postgresql-5035d7b9855bf43a1cb1c86fb842d6930cfb09db.tar.gz postgresql-5035d7b9855bf43a1cb1c86fb842d6930cfb09db.zip |
pg_atoi() does range check on int4 data only if
"HAS_LONG_LONG" is defined based on the assumption that
strtol() would return ERANGE if a platform does not support
64-bit integers. In current PostgreSQL 6.5 (and 6.4.2)
distribution, "HAS_LONG_LONG" is defined only if platform
is "alpha". (See include/port/alpha.h) I think the int4
range check should apply to linux_alpha as well. (I have
not tested yet but I guess this might be applicable to
newer Linux/i386 distributions which includes new GCC which
implements long int as 64-bit int.)
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/utils/adt/numutils.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/backend/utils/adt/numutils.c b/src/backend/utils/adt/numutils.c index 413d0fadd88..c2986d46734 100644 --- a/src/backend/utils/adt/numutils.c +++ b/src/backend/utils/adt/numutils.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/numutils.c,v 1.30 1999/05/25 16:12:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/numutils.c,v 1.31 1999/07/08 00:27:01 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -76,7 +76,7 @@ pg_atoi(char *s, int size, int c) switch (size) { case sizeof(int32): -#ifdef HAS_LONG_LONG +#if defined(HAVE_LONG_INT_64) || defined(HAVE_LONG_LONG_INT_64) /* won't get ERANGE on these with 64-bit longs... */ if (l < INT_MIN) { @@ -88,7 +88,7 @@ pg_atoi(char *s, int size, int c) errno = ERANGE; elog(ERROR, "pg_atoi: error reading \"%s\": %m", s); } -#endif /* HAS_LONG_LONG */ +#endif /* HAVE_LONG_INT_64 or HAVE_LONG_LONG_INT_64 */ break; case sizeof(int16): if (l < SHRT_MIN) |