Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-integer-datetimes en able 64-bit integer date/time support
+ --disable-integer-datetimes dis able 64-bit integer date/time support
--enable-nls[=LANGUAGES] enable Native Language Support
--disable-shared do not build shared libraries
--disable-rpath do not embed shared library search path in executables
#
-# 64-bit integer date/time storage (--enable-integer-datetimes)
+# 64-bit integer date/time storage: enabled by default.
#
{ echo "$as_me:$LINENO: checking whether to build with 64-bit integer date/time support" >&5
echo $ECHO_N "checking whether to build with 64-bit integer date/time support... $ECHO_C" >&6; }
esac
else
- enable_integer_datetimes=no
+ enable_integer_datetimes=yes
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_INTEGER_DATETIMES 1
+_ACEOF
fi
+# If the user did not disable integer datetimes, check that
+# there is a working 64-bit integral type to use.
+if test x"$USE_INTEGER_DATETIMES" = x"yes" &&
+ test x"$HAVE_LONG_INT_64" = x"no" &&
+ test x"$HAVE_LONG_LONG_INT_64" = x"no" &&
+ test x"$HAVE_INT64" = x"no" ; then
+ { { echo "$as_me:$LINENO: error:
+Integer-based datetime support requires a 64-bit integer type,
+but no such type could be found. The --disable-integer-datetimes
+configure option can be used to disable integer-based storage
+of datetime values." >&5
+echo "$as_me: error:
+Integer-based datetime support requires a 64-bit integer type,
+but no such type could be found. The --disable-integer-datetimes
+configure option can be used to disable integer-based storage
+of datetime values." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+
if test "$PORTNAME" != "win32"
then
{ echo "$as_me:$LINENO: checking for POSIX signal interface" >&5
dnl Process this file with autoconf to produce a configure script.
-dnl $PostgreSQL: pgsql/configure.in,v 1.554 2008/03/10 21:50:16 tgl Exp $
+dnl $PostgreSQL: pgsql/configure.in,v 1.555 2008/03/30 04:08:14 neilc Exp $
dnl
dnl Developers, please strive to achieve this order:
dnl
#
-# 64-bit integer date/time storage (--enable-integer-datetimes)
+# 64-bit integer date/time storage: enabled by default.
#
AC_MSG_CHECKING([whether to build with 64-bit integer date/time support])
-PGAC_ARG_BOOL(enable, integer-datetimes, no, [ --enable-integer-datetimes en able 64-bit integer date/time support],
+PGAC_ARG_BOOL(enable, integer-datetimes, yes, [ --disable-integer-datetimes dis able 64-bit integer date/time support],
[AC_DEFINE([USE_INTEGER_DATETIMES], 1,
[Define to 1 if you want 64-bit integer timestamp and interval support. (--enable-integer-datetimes)])])
AC_MSG_RESULT([$enable_integer_datetimes])
AC_CHECK_TYPES(sig_atomic_t, [], [], [#include ])
+# If the user did not disable integer datetimes, check that
+# there is a working 64-bit integral type to use.
+if test x"$USE_INTEGER_DATETIMES" = x"yes" &&
+ test x"$HAVE_LONG_INT_64" = x"no" &&
+ test x"$HAVE_LONG_LONG_INT_64" = x"no" &&
+ test x"$HAVE_INT64" = x"no" ; then
+ AC_MSG_ERROR([
+Integer-based datetime support requires a 64-bit integer type,
+but no such type could be found. The --disable-integer-datetimes
+configure option can be used to disable integer-based storage
+of datetime values.])
+fi
+
+
if test "$PORTNAME" != "win32"
then
PGAC_FUNC_POSIX_SIGNALS
-
+
Server Configuration
- Reports whether
PostgreSQLproductname> was built
- with support for 64-bit-integer dates and times. It is set by
- configuring with --enable-integer-datetimes >
- when building
PostgreSQLproductname>. The
- default value is off .
+ Reports whether
PostgreSQL> was built with
+ support for 64-bit-integer dates and times. This can be
+ disabled by configuring with --disable-integer-datetimes >
+ when building
PostgreSQL>. The default value is
+ on .
-
+
Data Types
8 bytes
both date and time
4713 BC
- 5874897 AD
+ 294276 AD
1 microsecond / 14 digits
|
8 bytes
both date and time, with time zone
4713 BC
- 5874897 AD
+ 294276 AD
1 microsecond / 14 digits
|
- When timestamp> values are stored as double precision floating-point
- numbers (currently the default), the effective limit of precision
- might be less than 6. timestamp values are stored as seconds
- before or after midnight 2000-01-01. Microsecond precision is achieved for
- dates within a few years of 2000-01-01, but the precision degrades for
- dates further away. When timestamp values are stored as
- eight-byte integers (a compile-time
- option), microsecond precision is available over the full range of
- values. However eight-byte integer timestamps have a more limited range of
- dates than shown above: from 4713 BC up to 294276 AD. The same
- compile-time option also determines whether time and
- interval values are stored as floating-point or eight-byte
- integers. In the floating-point case, large interval values
- degrade in precision as the size of the interval increases.
+ When timestamp> values are stored as eight-byte integers
+ (currently the default), microsecond precision is available over
+ the full range of values. When timestamp> values are
+ stored as double precision floating-point numbers instead (a
+ deprecated compile-time option), the effective limit of precision
+ might be less than 6. timestamp values are stored as
+ seconds before or after midnight 2000-01-01. When
+ timestamp values are implemented using floating-point
+ numbers, microsecond precision is achieved for dates within a few
+ years of 2000-01-01, but the precision degrades for dates further
+ away. Note that using floating-point datetimes allows a larger
+ range of timestamp values to be represented than
+ shown above: from 4713 BC up to 5874897 AD.
+
+
+ The same compile-time option also determines whether
+ time and interval values are stored as
+ floating-point numbers or eight-byte integers. In the
+ floating-point case, large interval values degrade in
+ precision as the size of the interval increases.
-
+
PostgreSQL>]]>
- --en able-integer-datetimes
+ --dis able-integer-datetimes
- Use 64-bit integer storage for datetimes and intervals, rather
- than the default floating-point storage. This reduces the range
- of representable values but guarantees microsecond precision across
- the full range (see
+ Disable support for 64-bit integer storage for timestamps and
+ intervals, and store datetime values as floating-point
+ numbers instead. Floating-point datetime storage was the
+ default in
PostgreSQL releases
+ prior to 8.4, but it is now deprecated, because it does not
+ support microsecond precision for the full range of
+ timestamp values. However, integer-based
+ datetime storage requires a 64-bit integer type. Therefore,
+ this option can be used when no such type is available, or
+ for compatibility with applications written for prior
+ versions of
PostgreSQL . See
]]>
- for more information) .
+ for more information.