Make sure we don't skip databases that are supposed to be vacuumed "exactly
authorAlvaro Herrera
Mon, 7 May 2007 20:41:24 +0000 (20:41 +0000)
committerAlvaro Herrera
Mon, 7 May 2007 20:41:24 +0000 (20:41 +0000)
now".  This can happen if the time granularity is not very high.

Per ITAGAKI Takahiro.

src/backend/postmaster/autovacuum.c

index 3234bc4723198fe223bc27b7613e80cadc9bfaaa..4d73c6c3f592f557aeb5d361cfd96475ccc71e52 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.45 2007/05/04 02:06:13 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.46 2007/05/07 20:41:24 alvherre Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1036,8 +1036,8 @@ do_start_worker(void)
                 * Skip this database if its next_worker value falls between
                 * the current time and the current time plus naptime.
                 */
-               if (TimestampDifferenceExceeds(current_time,
-                                              dbp->adl_next_worker, 0) &&
+               if (!TimestampDifferenceExceeds(dbp->adl_next_worker,
+                                              current_time, 0) &&
                    !TimestampDifferenceExceeds(current_time,
                                                dbp->adl_next_worker,
                                                autovacuum_naptime * 1000))