From e472f13f99793d49083af44b11f534a3003fe355 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Fri, 16 Feb 2007 18:37:43 +0000
Subject: [PATCH] Better fix for determining minimum and maximum int64 values
 that doesn't require stdint.h and works for "busted" int64.

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

diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index 78c5a4a8405..f814d7f543e 100644
--- a/src/backend/utils/adt/xml.c
+++ b/src/backend/utils/adt/xml.c
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.30 2007/02/16 10:42:31 petere Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.31 2007/02/16 18:37:43 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -40,10 +40,6 @@
 
 #include "postgres.h"
 
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-
 #ifdef USE_LIBXML
 #include <libxml/chvalid.h>
 #include <libxml/parser.h>
@@ -2189,7 +2185,8 @@ map_sql_type_to_xmlschema_type(Oid typeoid, int typmod)
 								 "    <xsd:maxInclusive value=\"" INT64_FORMAT "\"/>\n"
 								 "    <xsd:minInclusive value=\"" INT64_FORMAT "\"/>\n"
 								 "  </xsd:restriction>\n",
-								 INT64_MAX, INT64_MIN);
+								 -((INT64CONST(1) << (sizeof(int64) * 8 - 1)) + 1),
+								 (INT64CONST(1) << (sizeof(int64) * 8 - 1)));
 				break;
 
 			case FLOAT4OID:
-- 
GitLab