diff options
author | Bruce Momjian <bruce@momjian.us> | 2008-09-24 19:46:44 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2008-09-24 19:46:44 +0000 |
commit | fb4bb8b9c5715b0b7da042153af879a740182c14 (patch) | |
tree | 27d3add7f4d0572c8d752fd16e49950b8d7c519e /src | |
parent | 83c31214031d8ba7f0ffe7e77688c1c6166958b6 (diff) | |
download | postgresql-fb4bb8b9c5715b0b7da042153af879a740182c14.tar.gz postgresql-fb4bb8b9c5715b0b7da042153af879a740182c14.zip |
Fix integral timestamps so the output is consistent in all cases to
round:
select interval '0:0:0.7', interval '@ 0.70 secs', interval '0.7
seconds';
Ron Mayer
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/utils/adt/datetime.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c index 9640684cb10..21043311cef 100644 --- a/src/backend/utils/adt/datetime.c +++ b/src/backend/utils/adt/datetime.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.193 2008/09/16 22:31:21 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.194 2008/09/24 19:46:44 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -2888,7 +2888,7 @@ DecodeInterval(char **field, int *ftype, int nf, int range, { case DTK_MICROSEC: #ifdef HAVE_INT64_TIMESTAMP - *fsec += val + fval; + *fsec += rint(val + fval); #else *fsec += (val + fval) * 1e-6; #endif @@ -2897,7 +2897,7 @@ DecodeInterval(char **field, int *ftype, int nf, int range, case DTK_MILLISEC: #ifdef HAVE_INT64_TIMESTAMP - *fsec += (val + fval) * 1000; + *fsec += rint((val + fval) * 1000); #else *fsec += (val + fval) * 1e-3; #endif @@ -2907,7 +2907,7 @@ DecodeInterval(char **field, int *ftype, int nf, int range, case DTK_SECOND: tm->tm_sec += val; #ifdef HAVE_INT64_TIMESTAMP - *fsec += fval * 1000000; + *fsec += rint(fval * 1000000); #else *fsec += fval; #endif @@ -2932,7 +2932,7 @@ DecodeInterval(char **field, int *ftype, int nf, int range, sec = fval; tm->tm_sec += sec; #ifdef HAVE_INT64_TIMESTAMP - *fsec += (fval - sec) * 1000000; + *fsec += rint((fval - sec) * 1000000); #else *fsec += fval - sec; #endif @@ -2950,7 +2950,7 @@ DecodeInterval(char **field, int *ftype, int nf, int range, sec = fval; tm->tm_sec += sec; #ifdef HAVE_INT64_TIMESTAMP - *fsec += (fval - sec) * 1000000; + *fsec += rint((fval - sec) * 1000000); #else *fsec += fval - sec; #endif @@ -2969,7 +2969,7 @@ DecodeInterval(char **field, int *ftype, int nf, int range, sec = fval; tm->tm_sec += sec; #ifdef HAVE_INT64_TIMESTAMP - *fsec += (fval - sec) * 1000000; + *fsec += rint((fval - sec) * 1000000); #else *fsec += fval - sec; #endif @@ -2995,7 +2995,7 @@ DecodeInterval(char **field, int *ftype, int nf, int range, sec = fval; tm->tm_sec += sec; #ifdef HAVE_INT64_TIMESTAMP - *fsec += (fval - sec) * 1000000; + *fsec += rint((fval - sec) * 1000000); #else *fsec += fval - sec; #endif @@ -3022,7 +3022,7 @@ DecodeInterval(char **field, int *ftype, int nf, int range, sec = fval; tm->tm_sec += sec; #ifdef HAVE_INT64_TIMESTAMP - *fsec += (fval - sec) * 1000000; + *fsec += rint((fval - sec) * 1000000); #else *fsec += fval - sec; #endif |