Fix incorrect calculation of elapsed_xlogs. Itagaki Takahiro
authorTom Lane
Wed, 14 Nov 2007 21:19:18 +0000 (21:19 +0000)
committerTom Lane
Wed, 14 Nov 2007 21:19:18 +0000 (21:19 +0000)
src/backend/postmaster/bgwriter.c

index c0a7616233d8cb3db7cea0decdad2d47b4121075..f75e9f37d888a6c60697f55ed8588c97ed3a865f 100644 (file)
@@ -37,7 +37,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.45 2007/10/04 15:37:44 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.46 2007/11/14 21:19:18 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -718,7 +718,7 @@ IsCheckpointOnSchedule(double progress)
    recptr = GetInsertRecPtr();
    elapsed_xlogs =
        (((double) (int32) (recptr.xlogid - ckpt_start_recptr.xlogid)) * XLogSegsPerFile +
-        ((double) (int32) (recptr.xrecoff - ckpt_start_recptr.xrecoff)) / XLogSegSize) /
+        ((double) recptr.xrecoff - (double) ckpt_start_recptr.xrecoff) / XLogSegSize) /
        CheckPointSegments;
 
    if (progress < elapsed_xlogs)