Improve computations of interval_div to prevent rounding problem on AIX.
authorBruce Momjian <bruce@momjian.us>
Sat, 23 Jul 2005 14:53:21 +0000 (14:53 +0000)
committerBruce Momjian <bruce@momjian.us>
Sat, 23 Jul 2005 14:53:21 +0000 (14:53 +0000)
src/backend/utils/adt/timestamp.c

index da7a87a1bb89c5cd0049a7a3b728025c2c25ee67..ac628453441132d268e5c311335d7eb12ccccace 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.144 2005/07/23 14:25:34 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.145 2005/07/23 14:53:21 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -2308,9 +2308,9 @@ interval_div(PG_FUNCTION_ARGS)
    result->day = span->day / factor;
    result->time = span->time / factor;
 
-   /* Computer remainders */
-   month_remainder = (span->month - result->month * factor) / factor;
-   day_remainder = (span->day - result->day * factor) / factor;
+   /* Compute remainders */
+   month_remainder = span->month / factor - result->month;
+   day_remainder = span->day / factor - result->day;
 
    /* Cascade fractions to lower units */
    /* fractional months full days into days */