*** pgsql/src/backend/utils/adt/datetime.c 2009/06/11 14:49:03 1.208 --- pgsql/src/backend/utils/adt/datetime.c 2009/08/18 21:23:14 1.209 *************** *** 8,14 **** * * * IDENTIFICATION ! * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.207 2009/06/10 05:05:03 tgl Exp $ * *------------------------------------------------------------------------- */ --- 8,14 ---- * * * IDENTIFICATION ! * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.208 2009/06/11 14:49:03 momjian Exp $ * *------------------------------------------------------------------------- */ *************** DecodeInterval(char **field, int *ftype, *** 2986,2991 **** --- 2986,2994 ---- break; case DTK_MILLISEC: + /* avoid overflowing the fsec field */ + tm->tm_sec += val / 1000; + val -= (val / 1000) * 1000; #ifdef HAVE_INT64_TIMESTAMP *fsec += rint((val + fval) * 1000); #else