|
1 | 1 | /* ----------------------------------------------------------------------- |
2 | 2 | * formatting.c |
3 | 3 | * |
4 | | - * $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.127 2007/02/1701:51:42 momjian Exp $ |
| 4 | + * $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.128 2007/02/1703:11:32 momjian Exp $ |
5 | 5 | * |
6 | 6 | * |
7 | 7 | * Portions Copyright (c) 1999-2007, PostgreSQL Global Development Group |
@@ -2000,7 +2000,8 @@ dch_time(int arg, char *inout, int suf, bool is_to_char, bool is_interval, |
2000 | 2000 | #ifdefHAVE_INT64_TIMESTAMP |
2001 | 2001 | sprintf(inout,"%03d", (int) (tmtc->fsec /INT64CONST(1000))); |
2002 | 2002 | #else |
2003 | | -sprintf(inout,"%03d", (int)rint(tmtc->fsec*1000)); |
| 2003 | +/* No rint() because we can't overflow and we might print US */ |
| 2004 | +sprintf(inout,"%03d", (int) (tmtc->fsec*1000)); |
2004 | 2005 | #endif |
2005 | 2006 | if (S_THth(suf)) |
2006 | 2007 | str_numth(p_inout,inout,S_TH_TYPE(suf)); |
@@ -2041,7 +2042,8 @@ dch_time(int arg, char *inout, int suf, bool is_to_char, bool is_interval, |
2041 | 2042 | #ifdefHAVE_INT64_TIMESTAMP |
2042 | 2043 | sprintf(inout,"%06d", (int)tmtc->fsec); |
2043 | 2044 | #else |
2044 | | -sprintf(inout,"%06d", (int)rint(tmtc->fsec*1000000)); |
| 2045 | +/* don't use rint() because we can't overflow 1000 */ |
| 2046 | +sprintf(inout,"%06d", (int) (tmtc->fsec*1000000)); |
2045 | 2047 | #endif |
2046 | 2048 | if (S_THth(suf)) |
2047 | 2049 | str_numth(p_inout,inout,S_TH_TYPE(suf)); |
|