From 5035d7b9855bf43a1cb1c86fb842d6930cfb09db Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Thu, 8 Jul 1999 00:27:01 +0000
Subject: [PATCH] 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.)

---
 src/backend/utils/adt/numutils.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/backend/utils/adt/numutils.c b/src/backend/utils/adt/numutils.c
index 413d0fadd8..c2986d4673 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)
-- 
2.50.1