1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-27 12:41:57 +03:00

De-support floating-point timestamps.

Per discussion, the time has come to do this.  The handwriting has been
on the wall at least since 9.0 that this would happen someday, whenever
it got to be too much of a burden to support the float-timestamp option.
The triggering factor now is the discovery that there are multiple bugs
in the code that attempts to implement use of integer timestamps in the
replication protocol even when the server is built for float timestamps.
The internal float timestamps leak into the protocol fields in places.
While we could fix the identified bugs, there's a very high risk of
introducing more.  Trying to build a wall that would positively prevent
mixing integer and float timestamps is more complexity than we want to
undertake to maintain a long-deprecated option.  The fact that these
bugs weren't found through testing also indicates a lack of interest
in float timestamps.

This commit disables configure's --disable-integer-datetimes switch
(it'll still accept --enable-integer-datetimes, though), removes direct
references to USE_INTEGER_DATETIMES, and removes discussion of float
timestamps from the user documentation.  A considerable amount of code is
rendered dead by this, but removing that will occur as separate mop-up.

Discussion: https://postgr.es/m/26788.1487455319@sss.pgh.pa.us
This commit is contained in:
Tom Lane
2017-02-23 11:40:12 -05:00
parent c3368f9173
commit b6aa17e0ae
15 changed files with 36 additions and 124 deletions

18
configure vendored
View File

@ -1473,7 +1473,7 @@ Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-integer-datetimes
disable 64-bit integer date/time support
obsolete option, no longer supported
--enable-nls[=LANGUAGES]
enable Native Language Support
--disable-rpath do not embed shared library search path in
@ -2984,10 +2984,10 @@ fi
#
# 64-bit integer date/time storage: enabled by default.
# 64-bit integer date/time storage is now the only option, but to avoid
# unnecessary breakage of build scripts, continue to accept an explicit
# "--enable-integer-datetimes" switch.
#
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with 64-bit integer date/time support" >&5
$as_echo_n "checking whether to build with 64-bit integer date/time support... " >&6; }
# Check whether --enable-integer-datetimes was given.
@ -2995,12 +2995,10 @@ if test "${enable_integer_datetimes+set}" = set; then :
enableval=$enable_integer_datetimes;
case $enableval in
yes)
$as_echo "#define USE_INTEGER_DATETIMES 1" >>confdefs.h
:
;;
no)
:
as_fn_error $? "--disable-integer-datetimes is no longer supported" "$LINENO" 5
;;
*)
as_fn_error $? "no argument expected for --enable-integer-datetimes option" "$LINENO" 5
@ -3010,13 +3008,9 @@ $as_echo "#define USE_INTEGER_DATETIMES 1" >>confdefs.h
else
enable_integer_datetimes=yes
$as_echo "#define USE_INTEGER_DATETIMES 1" >>confdefs.h
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_integer_datetimes" >&5
$as_echo "$enable_integer_datetimes" >&6; }
#