Make sure we don't skip databases that are supposed to be vacuumed "exactly
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 7 May 2007 20:41:24 +0000 (20:41 +0000)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
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))