-V vacuum scaling factor: see "Vacuum and Analyze" below.
 -a analyze base threshold: see "Vacuum and Analyze" below.
 -A analyze scaling factor: see "Vacuum and Analyze" below.
+-i update interval: how often (in terms of iterations of the primary loop
+   over the database list) to update the database list. The default is 2,
+   which means the list will be updated before every other pass through
+   the database list.
 -L log file: Name of file to which output is submitted, otherwise STDERR
 -U username: Username pg_autovacuum will use to connect with, if not
    specified the current username is used.
 -A 1   (half of -V if not specified)
 -s 300 (5 minutes)
 -S 2
+-i 2
 
 The following arguments are used on Windows only:
 
 
  * Revisions by Christopher B. Browne, Liberty RMS
  * Win32 Service code added by Dave Page
  *
- * $PostgreSQL: pgsql/contrib/pg_autovacuum/pg_autovacuum.c,v 1.30 2005/04/03 00:01:51 tgl Exp $
+ * $PostgreSQL: pgsql/contrib/pg_autovacuum/pg_autovacuum.c,v 1.31 2005/04/19 03:35:15 momjian Exp $
  */
 
 #include "postgres_fe.h"
    args->analyze_base_threshold = -1;
    args->analyze_scaling_factor = -1;
    args->debug = AUTOVACUUM_DEBUG;
+   args->update_interval = UPDATE_INTERVAL;
 #ifndef WIN32
    args->daemonize = 0;
 #else
            case 'A':
                args->analyze_scaling_factor = atof(optarg);
                break;
+           case 'i':
+               args->update_interval = atoi(optarg);
+               break;
            case 'c':
                args->av_vacuum_cost_delay = atoi(optarg);
                break;
    log_entry(logbuffer, LVL_INFO);
    sprintf(logbuffer, "  args->analyze_scaling_factor=%f", args->analyze_scaling_factor);
    log_entry(logbuffer, LVL_INFO);
+   sprintf(logbuffer, "  args->update_interval=%i", args->update_interval);
+   log_entry(logbuffer, LVL_INFO);
 
    if (args->av_vacuum_cost_delay != -1)
        sprintf(logbuffer, "  args->av_vacuum_cost_delay=%d", args->av_vacuum_cost_delay);
            }
        }
 
-       if (loops % UPDATE_INTERVAL == 0)       /* Update the list if it's
-                                                * time */
+       if (loops % args->update_interval == 0)     /* Update the list if it's
+                                                    * time */
            update_db_list(db_list);    /* Add and remove databases from
                                         * the list */
 
 
            if (dbs->conn != NULL)
            {
-               if (loops % UPDATE_INTERVAL == 0)       /* Update the list if
-                                                        * it's time */
+               if (loops % args->update_interval == 0)     /* Update the list if
+                                                            * it's time */
                    update_table_list(dbs);     /* Add and remove tables
                                                 * from the list */
 
 
  * Header file for pg_autovacuum.c
  * (c) 2003 Matthew T. O'Connor
  *
- * $PostgreSQL: pgsql/contrib/pg_autovacuum/pg_autovacuum.h,v 1.14 2004/12/02 22:48:10 momjian Exp $
+ * $PostgreSQL: pgsql/contrib/pg_autovacuum/pg_autovacuum.h,v 1.15 2005/04/19 03:35:15 momjian Exp $
  */
 
 #ifndef _PG_AUTOVACUUM_H
 {
    int         vacuum_base_threshold,
                analyze_base_threshold,
+               update_interval,
                sleep_base_value,
                debug,