From 9394d391b803c55281879721ea393a50df4a0be6 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Mon, 20 Nov 2000 15:56:14 +0000
Subject: [PATCH] Add configure checks for strtoll, strtoull (or strto[u]q). 
 Disable 'long long int' portions of ecpg if the type or these functions don't
 exist.

---
 configure                            | 164 ++++++++++++++++++++++-----
 configure.in                         |   4 +
 src/include/config.h.in              |  21 +++-
 src/interfaces/ecpg/lib/data.c       |  15 ++-
 src/interfaces/ecpg/lib/descriptor.c |   4 +
 src/interfaces/ecpg/lib/execute.c    |  10 +-
 src/interfaces/ecpg/lib/typename.c   |   4 +
 7 files changed, 188 insertions(+), 34 deletions(-)

diff --git a/configure b/configure
index 30217d35b1b..7bfcd69c786 100755
--- a/configure
+++ b/configure
@@ -7169,9 +7169,121 @@ EOF
 
 
 
+for ac_func in strtoll strtoq
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:7176: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 7181 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:7204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ break
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_func in strtoull strtouq
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:7231: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 7236 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:7259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ break
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+
 
 echo $ac_n "checking alignment of short""... $ac_c" 1>&6
-echo "configure:7175: checking alignment of short" >&5
+echo "configure:7287: checking alignment of short" >&5
 if eval "test \"`echo '$''{'pgac_cv_alignof_short'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7179,7 +7291,7 @@ else
   pgac_cv_alignof_short='sizeof(short)'
 else
   cat > conftest.$ac_ext <<EOF
-#line 7183 "configure"
+#line 7295 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 struct { char filler; short field; } mystruct;
@@ -7191,7 +7303,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:7195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   pgac_cv_alignof_short=`cat conftestval`
 else
@@ -7211,7 +7323,7 @@ EOF
 
 
 echo $ac_n "checking alignment of int""... $ac_c" 1>&6
-echo "configure:7215: checking alignment of int" >&5
+echo "configure:7327: checking alignment of int" >&5
 if eval "test \"`echo '$''{'pgac_cv_alignof_int'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7219,7 +7331,7 @@ else
   pgac_cv_alignof_int='sizeof(int)'
 else
   cat > conftest.$ac_ext <<EOF
-#line 7223 "configure"
+#line 7335 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 struct { char filler; int field; } mystruct;
@@ -7231,7 +7343,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:7235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7347: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   pgac_cv_alignof_int=`cat conftestval`
 else
@@ -7251,7 +7363,7 @@ EOF
 
 
 echo $ac_n "checking alignment of long""... $ac_c" 1>&6
-echo "configure:7255: checking alignment of long" >&5
+echo "configure:7367: checking alignment of long" >&5
 if eval "test \"`echo '$''{'pgac_cv_alignof_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7259,7 +7371,7 @@ else
   pgac_cv_alignof_long='sizeof(long)'
 else
   cat > conftest.$ac_ext <<EOF
-#line 7263 "configure"
+#line 7375 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 struct { char filler; long field; } mystruct;
@@ -7271,7 +7383,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:7275: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   pgac_cv_alignof_long=`cat conftestval`
 else
@@ -7292,7 +7404,7 @@ EOF
 
 if [ x"$HAVE_LONG_LONG_INT_64" = xyes ] ; then
   echo $ac_n "checking alignment of long long int""... $ac_c" 1>&6
-echo "configure:7296: checking alignment of long long int" >&5
+echo "configure:7408: checking alignment of long long int" >&5
 if eval "test \"`echo '$''{'pgac_cv_alignof_long_long_int'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7300,7 +7412,7 @@ else
   pgac_cv_alignof_long_long_int='sizeof(long long int)'
 else
   cat > conftest.$ac_ext <<EOF
-#line 7304 "configure"
+#line 7416 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 struct { char filler; long long int field; } mystruct;
@@ -7312,7 +7424,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:7316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7428: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   pgac_cv_alignof_long_long_int=`cat conftestval`
 else
@@ -7333,7 +7445,7 @@ EOF
 
 fi
 echo $ac_n "checking alignment of double""... $ac_c" 1>&6
-echo "configure:7337: checking alignment of double" >&5
+echo "configure:7449: checking alignment of double" >&5
 if eval "test \"`echo '$''{'pgac_cv_alignof_double'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7341,7 +7453,7 @@ else
   pgac_cv_alignof_double='sizeof(double)'
 else
   cat > conftest.$ac_ext <<EOF
-#line 7345 "configure"
+#line 7457 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 struct { char filler; double field; } mystruct;
@@ -7353,7 +7465,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:7357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   pgac_cv_alignof_double=`cat conftestval`
 else
@@ -7391,12 +7503,12 @@ EOF
 
 
 echo $ac_n "checking for POSIX signal interface""... $ac_c" 1>&6
-echo "configure:7395: checking for POSIX signal interface" >&5
+echo "configure:7507: checking for POSIX signal interface" >&5
 if eval "test \"`echo '$''{'pgac_cv_func_posix_signals'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7400 "configure"
+#line 7512 "configure"
 #include "confdefs.h"
 #include <signal.h>
 
@@ -7407,7 +7519,7 @@ act.sa_flags = SA_RESTART;
 sigaction(0, &act, &oact);
 ; return 0; }
 EOF
-if { (eval echo configure:7411: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7523: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   pgac_cv_func_posix_signals=yes
 else
@@ -7437,7 +7549,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:7441: checking for $ac_word" >&5
+echo "configure:7553: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_TCLSH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7473,7 +7585,7 @@ test -n "$TCLSH" && break
 done
 
 echo $ac_n "checking for tclConfig.sh""... $ac_c" 1>&6
-echo "configure:7477: checking for tclConfig.sh" >&5
+echo "configure:7589: checking for tclConfig.sh" >&5
 # Let user override test
 if test -z "$TCL_CONFIG_SH"; then
     pgac_test_dirs="$with_tclconfig"
@@ -7506,7 +7618,7 @@ fi
 # Check for Tk configuration script tkConfig.sh
 if test "$with_tk" = yes; then
     echo $ac_n "checking for tkConfig.sh""... $ac_c" 1>&6
-echo "configure:7510: checking for tkConfig.sh" >&5
+echo "configure:7622: checking for tkConfig.sh" >&5
 # Let user override test
 if test -z "$TK_CONFIG_SH"; then
     pgac_test_dirs="$with_tkconfig $with_tclconfig"
@@ -7545,7 +7657,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:7549: checking for $ac_word" >&5
+echo "configure:7661: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_NSGMLS'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7581,7 +7693,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:7585: checking for $ac_word" >&5
+echo "configure:7697: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_JADE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7612,7 +7724,7 @@ done
 
   
 echo $ac_n "checking for DocBook V3.1""... $ac_c" 1>&6
-echo "configure:7616: checking for DocBook V3.1" >&5
+echo "configure:7728: checking for DocBook V3.1" >&5
 if eval "test \"`echo '$''{'pgac_cv_check_docbook'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7645,7 +7757,7 @@ have_docbook=$pgac_cv_check_docbook
 
 
   echo $ac_n "checking for DocBook stylesheets""... $ac_c" 1>&6
-echo "configure:7649: checking for DocBook stylesheets" >&5
+echo "configure:7761: checking for DocBook stylesheets" >&5
 if eval "test \"`echo '$''{'pgac_cv_path_stylesheets'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7684,7 +7796,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:7688: checking for $ac_word" >&5
+echo "configure:7800: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_SGMLSPL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
diff --git a/configure.in b/configure.in
index 9cda1399f23..68c118d3ff0 100644
--- a/configure.in
+++ b/configure.in
@@ -1072,6 +1072,10 @@ fi
 AC_DEFINE_UNQUOTED(INT64_FORMAT, $INT64_FORMAT)
 
 
+AC_CHECK_FUNCS([strtoll strtoq], [break])
+AC_CHECK_FUNCS([strtoull strtouq], [break])
+
+
 dnl Determine memory alignment requirements for the basic C datatypes.
 
 PGAC_CHECK_ALIGNOF(short)
diff --git a/src/include/config.h.in b/src/include/config.h.in
index b066daed7bd..4e36b9099a8 100644
--- a/src/include/config.h.in
+++ b/src/include/config.h.in
@@ -8,7 +8,7 @@
  * or in config.h afterwards.  Of course, if you edit config.h, then your
  * changes will be overwritten the next time you run configure.
  *
- * $Id: config.h.in,v 1.147 2000/11/06 22:18:10 petere Exp $
+ * $Id: config.h.in,v 1.148 2000/11/20 15:56:13 petere Exp $
  */
 
 #ifndef CONFIG_H
@@ -601,12 +601,29 @@ extern void srandom(unsigned int seed);
 /* Define if C++ compiler accepts "#include <string>" */
 #undef HAVE_CXX_STRING_HEADER
 
-/* Define if a system lib (-ldl) has dlopen() (needed for AIX) */
+/* Define if you have the dlopen function */
 #undef HAVE_DLOPEN
 
 /* Define if you have the optreset variable */
 #undef HAVE_INT_OPTRESET
 
+#undef HAVE_STRTOLL
+#undef HAVE_STRTOQ
+
+#if defined(HAVE_LONG_LONG_INT_64) && !defined(HAVE_STRTOLL) && defined(HAVE_STRTOQ)
+# define strtoll strtoq
+# define HAVE_STRTOLL 1
+#endif
+
+#undef HAVE_STRTOULL
+#undef HAVE_STRTOUQ
+
+#if defined(HAVE_LONG_LONG_INT_64) && !defined(HAVE_STRTOULL) && defined(HAVE_STRTOUQ)
+# define strtoull strtouq
+# define HAVE_STRTOULL 1
+#endif
+
+
 /*
  *------------------------------------------------------------------------
  * Part 4: pull in system-specific declarations.
diff --git a/src/interfaces/ecpg/lib/data.c b/src/interfaces/ecpg/lib/data.c
index 1c85de03505..fdaa583aa40 100644
--- a/src/interfaces/ecpg/lib/data.c
+++ b/src/interfaces/ecpg/lib/data.c
@@ -1,3 +1,5 @@
+#include "config.h"
+
 #include <stdlib.h>
 #include <string.h>
 
@@ -60,12 +62,14 @@ get_data(PGresult *results, int act_tuple, int act_field, int lineno,
 		case ECPGt_unsigned_long:
 			((long *) ind)[act_tuple] = -PQgetisnull(results, act_tuple, act_field);
 			break;
+#ifdef HAVE_LONG_LONG_INT_64
 		case ECPGt_long_long:
 		        ((long long int*) ind)[act_tuple] = -PQgetisnull(results, act_tuple, act_field);
 		        break;
 		case ECPGt_unsigned_long_long:
 		        ((unsigned long long int*) ind)[act_tuple] = -PQgetisnull(results, act_tuple, act_field);
-		        break; 
+		        break;
+#endif /* HAVE_LONG_LONG_INT_64 */
 		case ECPGt_NO_INDICATOR:
 			if (PQgetisnull(results, act_tuple, act_field))
 			{
@@ -154,10 +158,12 @@ get_data(PGresult *results, int act_tuple, int act_field, int lineno,
 				}
 				break;
 
+#ifdef HAVE_LONG_LONG_INT_64
+# ifdef HAVE_STRTOLL
 			case ECPGt_long_long:
 				if (pval)
 				{
-					((long long int *) var)[act_tuple] = strtoull(pval, &scan_length, 10);
+					((long long int *) var)[act_tuple] = strtoll(pval, &scan_length, 10);
 					if ((isarray && *scan_length != ',' && *scan_length != '}')
 						|| (!isarray && *scan_length != '\0'))	/* Garbage left */
 					{
@@ -169,7 +175,8 @@ get_data(PGresult *results, int act_tuple, int act_field, int lineno,
 					((long long int *) var)[act_tuple] = 0LL;
 				
 				break;
-
+# endif /* HAVE_STRTOLL */
+# ifdef HAVE_STRTOULL
 			case ECPGt_unsigned_long_long:
 				if (pval)
 				{
@@ -185,6 +192,8 @@ get_data(PGresult *results, int act_tuple, int act_field, int lineno,
 					((unsigned long long int *) var)[act_tuple] = 0LL;
 				
 				break;
+# endif /* HAVE_STRTOULL */
+#endif /* HAVE_LONG_LONG_INT_64 */
 					
 			case ECPGt_float:
 			case ECPGt_double:
diff --git a/src/interfaces/ecpg/lib/descriptor.c b/src/interfaces/ecpg/lib/descriptor.c
index 81d336deabe..5cdf8dc1f38 100644
--- a/src/interfaces/ecpg/lib/descriptor.c
+++ b/src/interfaces/ecpg/lib/descriptor.c
@@ -1,3 +1,5 @@
+#include "config.h"
+
 #include "ecpgtype.h"
 #include "ecpglib.h"
 #include "ecpgerrno.h"
@@ -81,12 +83,14 @@ get_int_item(int lineno, void *var, enum ECPGttype vartype, int value)
 		case ECPGt_unsigned_long:
 			*(unsigned long *) var = (unsigned long) value;
 			break;
+#ifdef HAVE_LONG_LONG_INT_64
 		case ECPGt_long_long:
 			*(long long int *) var = (long long int) value;
 			break;
 		case ECPGt_unsigned_long_long:
 			*(unsigned long long int *) var = (unsigned long long int) value;
 			break;
+#endif /* HAVE_LONG_LONG_INT_64 */
 		case ECPGt_float:
 			*(float *) var = (float) value;
 			break;
diff --git a/src/interfaces/ecpg/lib/execute.c b/src/interfaces/ecpg/lib/execute.c
index f1d11105f07..9daa97a087f 100644
--- a/src/interfaces/ecpg/lib/execute.c
+++ b/src/interfaces/ecpg/lib/execute.c
@@ -12,6 +12,8 @@
 /* Taken over as part of PostgreSQL by Michael Meskes <meskes@postgresql.org>
    on Feb. 5th, 1998 */
 
+#include "config.h"
+
 #include <stdio.h>
 #include <locale.h>
 
@@ -414,11 +416,13 @@ ECPGexecute(struct statement * stmt)
 				if (*(long *) var->ind_value < 0L)
 					strcpy(buff, "null");
 				break;
+#ifdef HAVE_LONG_LONG_INT_64
 			case ECPGt_long_long:
 			case ECPGt_unsigned_long_long:
 	                        if (*(long long int*) var->ind_value < 0LL)
 					strcpy(buff, "null");
 	                        break;
+#endif /* HAVE_LONG_LONG_INT_64 */
 			default:
 				break;
 		}
@@ -542,7 +546,7 @@ ECPGexecute(struct statement * stmt)
 
 					tobeinserted = mallocedval;
 					break;
-					
+#ifdef HAVE_LONG_LONG_INT_64
 				case ECPGt_long_long:
 					if (!(mallocedval = ecpg_alloc(var->arrsize * 25, stmt->lineno)))
 						return false;
@@ -580,7 +584,7 @@ ECPGexecute(struct statement * stmt)
 
 					tobeinserted = mallocedval;
 					break;
-
+#endif /* HAVE_LONG_LONG_INT_64 */
 				case ECPGt_float:
 					if (!(mallocedval = ecpg_alloc(var->arrsize * 20, stmt->lineno)))
 						return false;
@@ -1003,7 +1007,7 @@ ECPGdo(int lineno, const char *connection_name, char *query,...)
  *
  * Copyright (c) 2000, Christof Petig <christof.petig@wtal.de>
  *
- * $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/execute.c,v 1.13 2000/10/29 09:44:58 meskes Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/execute.c,v 1.14 2000/11/20 15:56:14 petere Exp $
  */
 
 PGconn	   *ECPG_internal_get_connection(char *name);
diff --git a/src/interfaces/ecpg/lib/typename.c b/src/interfaces/ecpg/lib/typename.c
index a638c7d7666..710354ffe29 100644
--- a/src/interfaces/ecpg/lib/typename.c
+++ b/src/interfaces/ecpg/lib/typename.c
@@ -1,3 +1,5 @@
+#include "config.h"
+
 #include <stdlib.h>
 #include "ecpgtype.h"
 #include "ecpglib.h"
@@ -29,10 +31,12 @@ ECPGtype_name(enum ECPGttype typ)
 			return "long";
 		case ECPGt_unsigned_long:
 			return "unsigned long";
+#ifdef HAVE_LONG_LONG_INT_64
 		case ECPGt_long_long:
 			return "long long";
 		case ECPGt_unsigned_long_long:
 			return "unsigned long long";
+#endif /* HAVE_LONG_LONG_INT_64 */
 		case ECPGt_float:
 			return "float";
 		case ECPGt_double:
-- 
GitLab