mirror of
https://github.com/postgres/postgres.git
synced 2025-06-05 23:56:58 +03:00
Replace self written 'long long int' configure test by standard 'AC_TYPE_LONG_LONG_INT' macro call.
This commit is contained in:
parent
9b6dba1193
commit
29259531c7
@ -1,5 +1,5 @@
|
|||||||
# Macros to detect C compiler features
|
# Macros to detect C compiler features
|
||||||
# $PostgreSQL: pgsql/config/c-compiler.m4,v 1.21 2010/05/25 14:32:55 meskes Exp $
|
# $PostgreSQL: pgsql/config/c-compiler.m4,v 1.22 2010/05/25 17:28:20 meskes Exp $
|
||||||
|
|
||||||
|
|
||||||
# PGAC_C_SIGNED
|
# PGAC_C_SIGNED
|
||||||
@ -156,18 +156,3 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([extern void $2 (); void (*fptr) () = $2;],[])],
|
|||||||
AC_MSG_RESULT(assuming no)])
|
AC_MSG_RESULT(assuming no)])
|
||||||
])# PGAC_PROG_CC_LDFLAGS_OPT
|
])# PGAC_PROG_CC_LDFLAGS_OPT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# PGAC_C_LONG_LONG
|
|
||||||
# ----------------
|
|
||||||
# Check if the C compiler understands long long type.
|
|
||||||
AC_DEFUN([PGAC_C_LONG_LONG],
|
|
||||||
[AC_CACHE_CHECK(for long long type, pgac_cv_c_long_long,
|
|
||||||
[AC_TRY_COMPILE([],
|
|
||||||
[long long l;],
|
|
||||||
[pgac_cv_c_long_long=yes],
|
|
||||||
[pgac_cv_c_long_long=no])])
|
|
||||||
if test x"$pgac_cv_c_long_long" = xyes ; then
|
|
||||||
AC_DEFINE(HAVE_LONG_LONG, 1, [Define to 1 if the C compiler does understand long long type.])
|
|
||||||
fi])# PGAC_C_LONG_LONG
|
|
||||||
|
|
||||||
|
211
configure
vendored
211
configure
vendored
@ -2008,6 +2008,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ac_aux_dir=
|
ac_aux_dir=
|
||||||
for ac_dir in config "$srcdir"/config; do
|
for ac_dir in config "$srcdir"/config; do
|
||||||
if test -f "$ac_dir/install-sh"; then
|
if test -f "$ac_dir/install-sh"; then
|
||||||
@ -14693,63 +14694,6 @@ cat >>confdefs.h <<\_ACEOF
|
|||||||
#define signed /**/
|
#define signed /**/
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
fi
|
|
||||||
{ $as_echo "$as_me:$LINENO: checking for long long type" >&5
|
|
||||||
$as_echo_n "checking for long long type... " >&6; }
|
|
||||||
if test "${pgac_cv_c_long_long+set}" = set; then
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
cat >conftest.$ac_ext <<_ACEOF
|
|
||||||
/* confdefs.h. */
|
|
||||||
_ACEOF
|
|
||||||
cat confdefs.h >>conftest.$ac_ext
|
|
||||||
cat >>conftest.$ac_ext <<_ACEOF
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
|
||||||
long long l;
|
|
||||||
;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
_ACEOF
|
|
||||||
rm -f conftest.$ac_objext
|
|
||||||
if { (ac_try="$ac_compile"
|
|
||||||
case "(($ac_try" in
|
|
||||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
|
||||||
*) ac_try_echo=$ac_try;;
|
|
||||||
esac
|
|
||||||
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
|
|
||||||
$as_echo "$ac_try_echo") >&5
|
|
||||||
(eval "$ac_compile") 2>conftest.er1
|
|
||||||
ac_status=$?
|
|
||||||
grep -v '^ *+' conftest.er1 >conftest.err
|
|
||||||
rm -f conftest.er1
|
|
||||||
cat conftest.err >&5
|
|
||||||
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
|
||||||
(exit $ac_status); } && {
|
|
||||||
test -z "$ac_c_werror_flag" ||
|
|
||||||
test ! -s conftest.err
|
|
||||||
} && test -s conftest.$ac_objext; then
|
|
||||||
pgac_cv_c_long_long=yes
|
|
||||||
else
|
|
||||||
$as_echo "$as_me: failed program was:" >&5
|
|
||||||
sed 's/^/| /' conftest.$ac_ext >&5
|
|
||||||
|
|
||||||
pgac_cv_c_long_long=no
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
|
||||||
fi
|
|
||||||
{ $as_echo "$as_me:$LINENO: result: $pgac_cv_c_long_long" >&5
|
|
||||||
$as_echo "$pgac_cv_c_long_long" >&6; }
|
|
||||||
if test x"$pgac_cv_c_long_long" = xyes ; then
|
|
||||||
|
|
||||||
cat >>confdefs.h <<\_ACEOF
|
|
||||||
#define HAVE_LONG_LONG 1
|
|
||||||
_ACEOF
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:$LINENO: checking for working volatile" >&5
|
{ $as_echo "$as_me:$LINENO: checking for working volatile" >&5
|
||||||
$as_echo_n "checking for working volatile... " >&6; }
|
$as_echo_n "checking for working volatile... " >&6; }
|
||||||
@ -16505,6 +16449,159 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:$LINENO: checking for long long int" >&5
|
||||||
|
$as_echo_n "checking for long long int... " >&6; }
|
||||||
|
if test "${ac_cv_type_long_long_int+set}" = set; then
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
/* For now, do not test the preprocessor; as of 2007 there are too many
|
||||||
|
implementations with broken preprocessors. Perhaps this can
|
||||||
|
be revisited in 2012. In the meantime, code should not expect
|
||||||
|
#if to work with literals wider than 32 bits. */
|
||||||
|
/* Test literals. */
|
||||||
|
long long int ll = 9223372036854775807ll;
|
||||||
|
long long int nll = -9223372036854775807LL;
|
||||||
|
unsigned long long int ull = 18446744073709551615ULL;
|
||||||
|
/* Test constant expressions. */
|
||||||
|
typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
|
||||||
|
? 1 : -1)];
|
||||||
|
typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
|
||||||
|
? 1 : -1)];
|
||||||
|
int i = 63;
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
/* Test availability of runtime routines for shift and division. */
|
||||||
|
long long int llmax = 9223372036854775807ll;
|
||||||
|
unsigned long long int ullmax = 18446744073709551615ull;
|
||||||
|
return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
|
||||||
|
| (llmax / ll) | (llmax % ll)
|
||||||
|
| (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
|
||||||
|
| (ullmax / ull) | (ullmax % ull));
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
_ACEOF
|
||||||
|
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||||
|
if { (ac_try="$ac_link"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
|
||||||
|
$as_echo "$ac_try_echo") >&5
|
||||||
|
(eval "$ac_link") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } && {
|
||||||
|
test -z "$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
} && test -s conftest$ac_exeext && {
|
||||||
|
test "$cross_compiling" = yes ||
|
||||||
|
$as_test_x conftest$ac_exeext
|
||||||
|
}; then
|
||||||
|
if test "$cross_compiling" = yes; then
|
||||||
|
ac_cv_type_long_long_int=yes
|
||||||
|
else
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <limits.h>
|
||||||
|
#ifndef LLONG_MAX
|
||||||
|
# define HALF \
|
||||||
|
(1LL << (sizeof (long long int) * CHAR_BIT - 2))
|
||||||
|
# define LLONG_MAX (HALF - 1 + HALF)
|
||||||
|
#endif
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
long long int n = 1;
|
||||||
|
int i;
|
||||||
|
for (i = 0; ; i++)
|
||||||
|
{
|
||||||
|
long long int m = n << i;
|
||||||
|
if (m >> i != n)
|
||||||
|
return 1;
|
||||||
|
if (LLONG_MAX / 2 < m)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
rm -f conftest$ac_exeext
|
||||||
|
if { (ac_try="$ac_link"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
|
||||||
|
$as_echo "$ac_try_echo") >&5
|
||||||
|
(eval "$ac_link") 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
|
||||||
|
{ (case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
|
||||||
|
$as_echo "$ac_try_echo") >&5
|
||||||
|
(eval "$ac_try") 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); }; }; then
|
||||||
|
ac_cv_type_long_long_int=yes
|
||||||
|
else
|
||||||
|
$as_echo "$as_me: program exited with status $ac_status" >&5
|
||||||
|
$as_echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
( exit $ac_status )
|
||||||
|
ac_cv_type_long_long_int=no
|
||||||
|
fi
|
||||||
|
rm -rf conftest.dSYM
|
||||||
|
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
else
|
||||||
|
$as_echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
ac_cv_type_long_long_int=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf conftest.dSYM
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_long_long_int" >&5
|
||||||
|
$as_echo "$ac_cv_type_long_long_int" >&6; }
|
||||||
|
if test $ac_cv_type_long_long_int = yes; then
|
||||||
|
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define HAVE_LONG_LONG_INT 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:$LINENO: checking for struct cmsgcred" >&5
|
{ $as_echo "$as_me:$LINENO: checking for struct cmsgcred" >&5
|
||||||
$as_echo_n "checking for struct cmsgcred... " >&6; }
|
$as_echo_n "checking for struct cmsgcred... " >&6; }
|
||||||
if test "${ac_cv_type_struct_cmsgcred+set}" = set; then
|
if test "${ac_cv_type_struct_cmsgcred+set}" = set; then
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
dnl Process this file with autoconf to produce a configure script.
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
dnl $PostgreSQL: pgsql/configure.in,v 1.628 2010/05/25 14:32:54 meskes Exp $
|
dnl $PostgreSQL: pgsql/configure.in,v 1.629 2010/05/25 17:28:20 meskes Exp $
|
||||||
dnl
|
dnl
|
||||||
dnl Developers, please strive to achieve this order:
|
dnl Developers, please strive to achieve this order:
|
||||||
dnl
|
dnl
|
||||||
@ -1090,7 +1090,6 @@ AC_C_CONST
|
|||||||
PGAC_C_INLINE
|
PGAC_C_INLINE
|
||||||
AC_C_STRINGIZE
|
AC_C_STRINGIZE
|
||||||
PGAC_C_SIGNED
|
PGAC_C_SIGNED
|
||||||
PGAC_C_LONG_LONG
|
|
||||||
AC_C_VOLATILE
|
AC_C_VOLATILE
|
||||||
PGAC_C_FUNCNAME_SUPPORT
|
PGAC_C_FUNCNAME_SUPPORT
|
||||||
PGAC_STRUCT_TIMEZONE
|
PGAC_STRUCT_TIMEZONE
|
||||||
@ -1101,6 +1100,7 @@ PGAC_STRUCT_SOCKADDR_STORAGE_MEMBERS
|
|||||||
PGAC_STRUCT_ADDRINFO
|
PGAC_STRUCT_ADDRINFO
|
||||||
AC_TYPE_INTPTR_T
|
AC_TYPE_INTPTR_T
|
||||||
AC_TYPE_UINTPTR_T
|
AC_TYPE_UINTPTR_T
|
||||||
|
AC_TYPE_LONG_LONG_INT
|
||||||
|
|
||||||
AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [],
|
AC_CHECK_TYPES([struct cmsgcred, struct fcred, struct sockcred], [], [],
|
||||||
[#include <sys/param.h>
|
[#include <sys/param.h>
|
||||||
|
@ -330,8 +330,8 @@
|
|||||||
/* Define to 1 if `long int' works and is 64 bits. */
|
/* Define to 1 if `long int' works and is 64 bits. */
|
||||||
#undef HAVE_LONG_INT_64
|
#undef HAVE_LONG_INT_64
|
||||||
|
|
||||||
/* Define to 1 if the C compiler does understand long long type. */
|
/* Define to 1 if the system has the type `long long int'. */
|
||||||
#undef HAVE_LONG_LONG
|
#undef HAVE_LONG_LONG_INT
|
||||||
|
|
||||||
/* Define to 1 if `long long int' works and is 64 bits. */
|
/* Define to 1 if `long long int' works and is 64 bits. */
|
||||||
#undef HAVE_LONG_LONG_INT_64
|
#undef HAVE_LONG_LONG_INT_64
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.52 2010/05/20 22:10:45 meskes Exp $ */
|
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.53 2010/05/25 17:28:20 meskes Exp $ */
|
||||||
|
|
||||||
#define POSTGRES_ECPG_INTERNAL
|
#define POSTGRES_ECPG_INTERNAL
|
||||||
#include "postgres_fe.h"
|
#include "postgres_fe.h"
|
||||||
@ -177,12 +177,12 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
|
|||||||
case ECPGt_unsigned_long:
|
case ECPGt_unsigned_long:
|
||||||
*((long *) (ind + ind_offset * act_tuple)) = value_for_indicator;
|
*((long *) (ind + ind_offset * act_tuple)) = value_for_indicator;
|
||||||
break;
|
break;
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
case ECPGt_long_long:
|
case ECPGt_long_long:
|
||||||
case ECPGt_unsigned_long_long:
|
case ECPGt_unsigned_long_long:
|
||||||
*((long long int *) (ind + ind_offset * act_tuple)) = value_for_indicator;
|
*((long long int *) (ind + ind_offset * act_tuple)) = value_for_indicator;
|
||||||
break;
|
break;
|
||||||
#endif /* HAVE_LONG_LONG */
|
#endif /* HAVE_LONG_LONG_INT */
|
||||||
case ECPGt_NO_INDICATOR:
|
case ECPGt_NO_INDICATOR:
|
||||||
if (value_for_indicator == -1)
|
if (value_for_indicator == -1)
|
||||||
{
|
{
|
||||||
@ -265,12 +265,12 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
|
|||||||
case ECPGt_unsigned_long:
|
case ECPGt_unsigned_long:
|
||||||
*((long *) (ind + ind_offset * act_tuple)) = size;
|
*((long *) (ind + ind_offset * act_tuple)) = size;
|
||||||
break;
|
break;
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
case ECPGt_long_long:
|
case ECPGt_long_long:
|
||||||
case ECPGt_unsigned_long_long:
|
case ECPGt_unsigned_long_long:
|
||||||
*((long long int *) (ind + ind_offset * act_tuple)) = size;
|
*((long long int *) (ind + ind_offset * act_tuple)) = size;
|
||||||
break;
|
break;
|
||||||
#endif /* HAVE_LONG_LONG */
|
#endif /* HAVE_LONG_LONG_INT */
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -350,7 +350,7 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
#ifdef HAVE_STRTOLL
|
#ifdef HAVE_STRTOLL
|
||||||
case ECPGt_long_long:
|
case ECPGt_long_long:
|
||||||
*((long long int *) (var + offset * act_tuple)) = strtoll(pval, &scan_length, 10);
|
*((long long int *) (var + offset * act_tuple)) = strtoll(pval, &scan_length, 10);
|
||||||
@ -376,7 +376,7 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
#endif /* HAVE_STRTOULL */
|
#endif /* HAVE_STRTOULL */
|
||||||
#endif /* HAVE_LONG_LONG */
|
#endif /* HAVE_LONG_LONG_INT */
|
||||||
|
|
||||||
case ECPGt_float:
|
case ECPGt_float:
|
||||||
case ECPGt_double:
|
case ECPGt_double:
|
||||||
@ -489,12 +489,12 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
|
|||||||
case ECPGt_unsigned_long:
|
case ECPGt_unsigned_long:
|
||||||
*((long *) (ind + ind_offset * act_tuple)) = size;
|
*((long *) (ind + ind_offset * act_tuple)) = size;
|
||||||
break;
|
break;
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
case ECPGt_long_long:
|
case ECPGt_long_long:
|
||||||
case ECPGt_unsigned_long_long:
|
case ECPGt_unsigned_long_long:
|
||||||
*((long long int *) (ind + ind_offset * act_tuple)) = size;
|
*((long long int *) (ind + ind_offset * act_tuple)) = size;
|
||||||
break;
|
break;
|
||||||
#endif /* HAVE_LONG_LONG */
|
#endif /* HAVE_LONG_LONG_INT */
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -534,12 +534,12 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
|
|||||||
case ECPGt_unsigned_long:
|
case ECPGt_unsigned_long:
|
||||||
*((long *) (ind + offset * act_tuple)) = variable->len;
|
*((long *) (ind + offset * act_tuple)) = variable->len;
|
||||||
break;
|
break;
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
case ECPGt_long_long:
|
case ECPGt_long_long:
|
||||||
case ECPGt_unsigned_long_long:
|
case ECPGt_unsigned_long_long:
|
||||||
*((long long int *) (ind + ind_offset * act_tuple)) = variable->len;
|
*((long long int *) (ind + ind_offset * act_tuple)) = variable->len;
|
||||||
break;
|
break;
|
||||||
#endif /* HAVE_LONG_LONG */
|
#endif /* HAVE_LONG_LONG_INT */
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* dynamic SQL support routines
|
/* dynamic SQL support routines
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.37 2010/05/20 22:10:45 meskes Exp $
|
* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.38 2010/05/25 17:28:20 meskes Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define POSTGRES_ECPG_INTERNAL
|
#define POSTGRES_ECPG_INTERNAL
|
||||||
@ -127,14 +127,14 @@ get_int_item(int lineno, void *var, enum ECPGttype vartype, int value)
|
|||||||
case ECPGt_unsigned_long:
|
case ECPGt_unsigned_long:
|
||||||
*(unsigned long *) var = (unsigned long) value;
|
*(unsigned long *) var = (unsigned long) value;
|
||||||
break;
|
break;
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
case ECPGt_long_long:
|
case ECPGt_long_long:
|
||||||
*(long long int *) var = (long long int) value;
|
*(long long int *) var = (long long int) value;
|
||||||
break;
|
break;
|
||||||
case ECPGt_unsigned_long_long:
|
case ECPGt_unsigned_long_long:
|
||||||
*(unsigned long long int *) var = (unsigned long long int) value;
|
*(unsigned long long int *) var = (unsigned long long int) value;
|
||||||
break;
|
break;
|
||||||
#endif /* HAVE_LONG_LONG */
|
#endif /* HAVE_LONG_LONG_INT */
|
||||||
case ECPGt_float:
|
case ECPGt_float:
|
||||||
*(float *) var = (float) value;
|
*(float *) var = (float) value;
|
||||||
break;
|
break;
|
||||||
@ -172,14 +172,14 @@ set_int_item(int lineno, int *target, const void *var, enum ECPGttype vartype)
|
|||||||
case ECPGt_unsigned_long:
|
case ECPGt_unsigned_long:
|
||||||
*target = *(unsigned long *) var;
|
*target = *(unsigned long *) var;
|
||||||
break;
|
break;
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
case ECPGt_long_long:
|
case ECPGt_long_long:
|
||||||
*target = *(long long int *) var;
|
*target = *(long long int *) var;
|
||||||
break;
|
break;
|
||||||
case ECPGt_unsigned_long_long:
|
case ECPGt_unsigned_long_long:
|
||||||
*target = *(unsigned long long int *) var;
|
*target = *(unsigned long long int *) var;
|
||||||
break;
|
break;
|
||||||
#endif /* HAVE_LONG_LONG */
|
#endif /* HAVE_LONG_LONG_INT */
|
||||||
case ECPGt_float:
|
case ECPGt_float:
|
||||||
*target = *(float *) var;
|
*target = *(float *) var;
|
||||||
break;
|
break;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.96 2010/05/20 22:10:45 meskes Exp $ */
|
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.97 2010/05/25 17:28:20 meskes Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The aim is to get a simpler inteface to the database routines.
|
* The aim is to get a simpler inteface to the database routines.
|
||||||
@ -541,13 +541,13 @@ ecpg_store_input(const int lineno, const bool force_indicator, const struct vari
|
|||||||
if (*(long *) var->ind_value < 0L)
|
if (*(long *) var->ind_value < 0L)
|
||||||
*tobeinserted_p = NULL;
|
*tobeinserted_p = NULL;
|
||||||
break;
|
break;
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
case ECPGt_long_long:
|
case ECPGt_long_long:
|
||||||
case ECPGt_unsigned_long_long:
|
case ECPGt_unsigned_long_long:
|
||||||
if (*(long long int *) var->ind_value < (long long) 0)
|
if (*(long long int *) var->ind_value < (long long) 0)
|
||||||
*tobeinserted_p = NULL;
|
*tobeinserted_p = NULL;
|
||||||
break;
|
break;
|
||||||
#endif /* HAVE_LONG_LONG */
|
#endif /* HAVE_LONG_LONG_INT */
|
||||||
case ECPGt_NO_INDICATOR:
|
case ECPGt_NO_INDICATOR:
|
||||||
if (force_indicator == false)
|
if (force_indicator == false)
|
||||||
{
|
{
|
||||||
@ -679,7 +679,7 @@ ecpg_store_input(const int lineno, const bool force_indicator, const struct vari
|
|||||||
|
|
||||||
*tobeinserted_p = mallocedval;
|
*tobeinserted_p = mallocedval;
|
||||||
break;
|
break;
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
case ECPGt_long_long:
|
case ECPGt_long_long:
|
||||||
if (!(mallocedval = ecpg_alloc(asize * 30, lineno)))
|
if (!(mallocedval = ecpg_alloc(asize * 30, lineno)))
|
||||||
return false;
|
return false;
|
||||||
@ -689,12 +689,12 @@ ecpg_store_input(const int lineno, const bool force_indicator, const struct vari
|
|||||||
strcpy(mallocedval, "array [");
|
strcpy(mallocedval, "array [");
|
||||||
|
|
||||||
for (element = 0; element < asize; element++)
|
for (element = 0; element < asize; element++)
|
||||||
sprintf(mallocedval + strlen(mallocedval), "%lld,", ((long long *) var->value)[element]);
|
sprintf(mallocedval + strlen(mallocedval), "%lld,", ((long long int *) var->value)[element]);
|
||||||
|
|
||||||
strcpy(mallocedval + strlen(mallocedval) - 1, "]");
|
strcpy(mallocedval + strlen(mallocedval) - 1, "]");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
sprintf(mallocedval, "%lld", *((long long *) var->value));
|
sprintf(mallocedval, "%lld", *((long long int *) var->value));
|
||||||
|
|
||||||
*tobeinserted_p = mallocedval;
|
*tobeinserted_p = mallocedval;
|
||||||
break;
|
break;
|
||||||
@ -708,16 +708,16 @@ ecpg_store_input(const int lineno, const bool force_indicator, const struct vari
|
|||||||
strcpy(mallocedval, "array [");
|
strcpy(mallocedval, "array [");
|
||||||
|
|
||||||
for (element = 0; element < asize; element++)
|
for (element = 0; element < asize; element++)
|
||||||
sprintf(mallocedval + strlen(mallocedval), "%llu,", ((unsigned long long *) var->value)[element]);
|
sprintf(mallocedval + strlen(mallocedval), "%llu,", ((unsigned long long int*) var->value)[element]);
|
||||||
|
|
||||||
strcpy(mallocedval + strlen(mallocedval) - 1, "]");
|
strcpy(mallocedval + strlen(mallocedval) - 1, "]");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
sprintf(mallocedval, "%llu", *((unsigned long long *) var->value));
|
sprintf(mallocedval, "%llu", *((unsigned long long int *) var->value));
|
||||||
|
|
||||||
*tobeinserted_p = mallocedval;
|
*tobeinserted_p = mallocedval;
|
||||||
break;
|
break;
|
||||||
#endif /* HAVE_LONG_LONG */
|
#endif /* HAVE_LONG_LONG_INT */
|
||||||
case ECPGt_float:
|
case ECPGt_float:
|
||||||
if (!(mallocedval = ecpg_alloc(asize * 25, lineno)))
|
if (!(mallocedval = ecpg_alloc(asize * 25, lineno)))
|
||||||
return false;
|
return false;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.57 2010/05/20 22:10:46 meskes Exp $ */
|
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.58 2010/05/25 17:28:20 meskes Exp $ */
|
||||||
|
|
||||||
#define POSTGRES_ECPG_INTERNAL
|
#define POSTGRES_ECPG_INTERNAL
|
||||||
#include "postgres_fe.h"
|
#include "postgres_fe.h"
|
||||||
@ -17,15 +17,15 @@
|
|||||||
#include "pgtypes_interval.h"
|
#include "pgtypes_interval.h"
|
||||||
#include "pg_config_paths.h"
|
#include "pg_config_paths.h"
|
||||||
|
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
#ifndef LONG_LONG_MIN
|
#ifndef LONG_LONG_MIN
|
||||||
#ifdef LLONG_MIN
|
#ifdef LLONG_MIN
|
||||||
#define LONG_LONG_MIN LLONG_MIN
|
#define LONG_LONG_MIN LLONG_MIN
|
||||||
#else
|
#else
|
||||||
#define LONG_LONG_MIN LONGLONG_MIN
|
#define LONG_LONG_MIN LONGLONG_MIN
|
||||||
#endif
|
#endif /* LLONG_MIN */
|
||||||
#endif
|
#endif /* LONG_LONG_MIN */
|
||||||
#endif
|
#endif /* HAVE_LONG_LONG_INT */
|
||||||
|
|
||||||
bool ecpg_internal_regression_mode = false;
|
bool ecpg_internal_regression_mode = false;
|
||||||
|
|
||||||
@ -327,12 +327,12 @@ ECPGset_noind_null(enum ECPGttype type, void *ptr)
|
|||||||
case ECPGt_date:
|
case ECPGt_date:
|
||||||
*((long *) ptr) = LONG_MIN;
|
*((long *) ptr) = LONG_MIN;
|
||||||
break;
|
break;
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
case ECPGt_long_long:
|
case ECPGt_long_long:
|
||||||
case ECPGt_unsigned_long_long:
|
case ECPGt_unsigned_long_long:
|
||||||
*((long long *) ptr) = LONG_LONG_MIN;
|
*((long long *) ptr) = LONG_LONG_MIN;
|
||||||
break;
|
break;
|
||||||
#endif /* HAVE_LONG_LONG */
|
#endif /* HAVE_LONG_LONG_INT */
|
||||||
case ECPGt_float:
|
case ECPGt_float:
|
||||||
memset((char *) ptr, 0xff, sizeof(float));
|
memset((char *) ptr, 0xff, sizeof(float));
|
||||||
break;
|
break;
|
||||||
@ -399,13 +399,13 @@ ECPGis_noind_null(enum ECPGttype type, void *ptr)
|
|||||||
if (*((long *) ptr) == LONG_MIN)
|
if (*((long *) ptr) == LONG_MIN)
|
||||||
return true;
|
return true;
|
||||||
break;
|
break;
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
case ECPGt_long_long:
|
case ECPGt_long_long:
|
||||||
case ECPGt_unsigned_long_long:
|
case ECPGt_unsigned_long_long:
|
||||||
if (*((long long *) ptr) == LONG_LONG_MIN)
|
if (*((long long *) ptr) == LONG_LONG_MIN)
|
||||||
return true;
|
return true;
|
||||||
break;
|
break;
|
||||||
#endif /* HAVE_LONG_LONG */
|
#endif /* HAVE_LONG_LONG_INT */
|
||||||
case ECPGt_float:
|
case ECPGt_float:
|
||||||
return (_check(ptr, sizeof(float)));
|
return (_check(ptr, sizeof(float)));
|
||||||
break;
|
break;
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
/* Define to 1 if `long int' works and is 64 bits. */
|
/* Define to 1 if `long int' works and is 64 bits. */
|
||||||
#undef HAVE_LONG_INT_64
|
#undef HAVE_LONG_INT_64
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `long long int'. */
|
||||||
|
#undef HAVE_LONG_LONG_INT
|
||||||
|
|
||||||
/* Define to 1 if `long long int' works and is 64 bits. */
|
/* Define to 1 if `long long int' works and is 64 bits. */
|
||||||
#undef HAVE_LONG_LONG_INT_64
|
#undef HAVE_LONG_LONG_INT_64
|
||||||
|
|
||||||
@ -15,6 +18,3 @@
|
|||||||
* (--enable-thread-safety) */
|
* (--enable-thread-safety) */
|
||||||
#undef ENABLE_THREAD_SAFETY
|
#undef ENABLE_THREAD_SAFETY
|
||||||
|
|
||||||
/* Define to 1 if the C compiler does understand long long type. */
|
|
||||||
#undef HAVE_LONG_LONG
|
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.trailer,v 1.25 2010/05/20 22:10:46 meskes Exp $ */
|
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.trailer,v 1.26 2010/05/25 17:28:20 meskes Exp $ */
|
||||||
|
|
||||||
statements: /*EMPTY*/
|
statements: /*EMPTY*/
|
||||||
| statements statement
|
| statements statement
|
||||||
@ -781,7 +781,7 @@ unsigned_type: SQL_UNSIGNED SQL_SHORT { $$ = ECPGt_unsigned_short; }
|
|||||||
| SQL_UNSIGNED SQL_LONG INT_P { $$ = ECPGt_unsigned_long; }
|
| SQL_UNSIGNED SQL_LONG INT_P { $$ = ECPGt_unsigned_long; }
|
||||||
| SQL_UNSIGNED SQL_LONG SQL_LONG
|
| SQL_UNSIGNED SQL_LONG SQL_LONG
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
$$ = ECPGt_unsigned_long_long;
|
$$ = ECPGt_unsigned_long_long;
|
||||||
#else
|
#else
|
||||||
$$ = ECPGt_unsigned_long;
|
$$ = ECPGt_unsigned_long;
|
||||||
@ -789,7 +789,7 @@ unsigned_type: SQL_UNSIGNED SQL_SHORT { $$ = ECPGt_unsigned_short; }
|
|||||||
}
|
}
|
||||||
| SQL_UNSIGNED SQL_LONG SQL_LONG INT_P
|
| SQL_UNSIGNED SQL_LONG SQL_LONG INT_P
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
$$ = ECPGt_unsigned_long_long;
|
$$ = ECPGt_unsigned_long_long;
|
||||||
#else
|
#else
|
||||||
$$ = ECPGt_unsigned_long;
|
$$ = ECPGt_unsigned_long;
|
||||||
@ -805,7 +805,7 @@ signed_type: SQL_SHORT { $$ = ECPGt_short; }
|
|||||||
| SQL_LONG INT_P { $$ = ECPGt_long; }
|
| SQL_LONG INT_P { $$ = ECPGt_long; }
|
||||||
| SQL_LONG SQL_LONG
|
| SQL_LONG SQL_LONG
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
$$ = ECPGt_long_long;
|
$$ = ECPGt_long_long;
|
||||||
#else
|
#else
|
||||||
$$ = ECPGt_long;
|
$$ = ECPGt_long;
|
||||||
@ -813,7 +813,7 @@ signed_type: SQL_SHORT { $$ = ECPGt_short; }
|
|||||||
}
|
}
|
||||||
| SQL_LONG SQL_LONG INT_P
|
| SQL_LONG SQL_LONG INT_P
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LONG_LONG
|
#ifdef HAVE_LONG_LONG_INT
|
||||||
$$ = ECPGt_long_long;
|
$$ = ECPGt_long_long;
|
||||||
#else
|
#else
|
||||||
$$ = ECPGt_long;
|
$$ = ECPGt_long;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user