Common subdirectories: pg_autovacuum.orig/CVS and pg_autovacuum/CVS diff -c pg_autovacuum.orig/README.pg_autovacuum pg_autovacuum/README.pg_autovacuum *** pg_autovacuum.orig/README.pg_autovacuum Wed Nov 17 21:30:36 2004 --- pg_autovacuum/README.pg_autovacuum Sat Nov 27 21:52:49 2004 *************** *** 163,173 **** be stored in plain text. -N service user: Name of the Windows user account under which the service ! will run. ! -W service password: The password for the service account. -R Uninstall pg_autovacuum as a service. Vacuum and Analyze: ------------------- --- 163,178 ---- be stored in plain text. -N service user: Name of the Windows user account under which the service ! will run. Only used when installing as a Windows service. ! -W service password: The password for the service account.Only used when ! installing as a Windows service. -R Uninstall pg_autovacuum as a service. + + -E Dependent service that must start before this service. Normally this will be + a PostgreSQL instance, e.g. "-E pgsql-8.0.0". Only used when installing as + a Windows service. Vacuum and Analyze: ------------------- Only in pg_autovacuum: dllist.c Only in pg_autovacuum: dllist.o diff -c pg_autovacuum.orig/pg_autovacuum.c pg_autovacuum/pg_autovacuum.c *** pg_autovacuum.orig/pg_autovacuum.c Wed Nov 17 21:30:36 2004 --- pg_autovacuum/pg_autovacuum.c Sat Nov 27 21:52:49 2004 *************** *** 1100,1106 **** #ifndef WIN32 while ((c = getopt(argc, argv, "s:S:v:V:a:A:d:U:P:H:L:p:hD:c:C:m:n:l:")) != -1) #else ! while ((c = getopt(argc, argv, "s:S:v:V:a:A:d:U:P:H:L:p:hIRN:W:c:C:m:n:l:")) != -1) #endif { switch (c) --- 1100,1106 ---- #ifndef WIN32 while ((c = getopt(argc, argv, "s:S:v:V:a:A:d:U:P:H:L:p:hD:c:C:m:n:l:")) != -1) #else ! while ((c = getopt(argc, argv, "s:S:v:V:a:A:d:U:P:H:L:p:hIRN:W:E:c:C:m:n:l:")) != -1) #endif { switch (c) *************** *** 1165,1170 **** --- 1165,1173 ---- usage(); exit(0); #ifdef WIN32 + case 'E': + args->service_dependencies = optarg; + break; case 'I': args->install_as_service++; break; *************** *** 1216,1221 **** --- 1219,1225 ---- fprintf(stderr, " [-R] Remove as a Windows service (all other options will be ignored)\n"); fprintf(stderr, " [-N] Username to run service as (only useful when installing as a Windows service)\n"); fprintf(stderr, " [-W] Password to run service with (only useful when installing as a Windows service)\n"); + fprintf(stderr, " [-E] Dependent service that must start before this service (only useful when installing as a Windows service)\n"); #endif i = AUTOVACUUM_DEBUG; fprintf(stderr, " [-d] debug (debug level=0,1,2,3; default=%d)\n", i); *************** *** 1273,1278 **** --- 1277,1284 ---- log_entry(logbuffer, LVL_INFO); sprintf(logbuffer, " args->remove_as_service=%d", args->remove_as_service); log_entry(logbuffer, LVL_INFO); + sprintf(logbuffer, " args->service_dependencies=%s", (args->service_dependencies) ? args->service_dependencies : "(null)"); + log_entry(logbuffer, LVL_INFO); sprintf(logbuffer, " args->service_user=%s", (args->service_user) ? args->service_user : "(null)"); log_entry(logbuffer, LVL_INFO); sprintf(logbuffer, " args->service_password=%s", (args->service_password) ? args->service_password : "(null)"); *************** *** 1385,1391 **** szFilename, /* Service binary */ NULL, /* No load ordering group */ NULL, /* No tag identifier */ ! NULL, /* Dependencies */ args->service_user, /* Service account */ args->service_password); /* Account password */ --- 1391,1397 ---- szFilename, /* Service binary */ NULL, /* No load ordering group */ NULL, /* No tag identifier */ ! args->service_dependencies, /* Dependencies */ args->service_user, /* Service account */ args->service_password); /* Account password */ *************** *** 1406,1416 **** if (args->port) sprintf(szCommand, "%s -p %s", szCommand, args->port); if (args->user) ! sprintf(szCommand, "%s -U %s", szCommand, args->user); if (args->password) ! sprintf(szCommand, "%s -P %s", szCommand, args->password); if (args->logfile) ! sprintf(szCommand, "%s -L %s", szCommand, args->logfile); if (args->sleep_base_value != (int) SLEEPBASEVALUE) sprintf(szCommand, "%s -s %d", szCommand, args->sleep_base_value); if (args->sleep_scaling_factor != (float) SLEEPSCALINGFACTOR) --- 1412,1422 ---- if (args->port) sprintf(szCommand, "%s -p %s", szCommand, args->port); if (args->user) ! sprintf(szCommand, "%s -U \"%s\"", szCommand, args->user); if (args->password) ! sprintf(szCommand, "%s -P \"%s\"", szCommand, args->password); if (args->logfile) ! sprintf(szCommand, "%s -L \"%s\"", szCommand, args->logfile); if (args->sleep_base_value != (int) SLEEPBASEVALUE) sprintf(szCommand, "%s -s %d", szCommand, args->sleep_base_value); if (args->sleep_scaling_factor != (float) SLEEPSCALINGFACTOR) Only in pg_autovacuum: pg_autovacuum.exe diff -c pg_autovacuum.orig/pg_autovacuum.h pg_autovacuum/pg_autovacuum.h *** pg_autovacuum.orig/pg_autovacuum.h Wed Nov 17 16:54:15 2004 --- pg_autovacuum/pg_autovacuum.h Sat Nov 27 21:52:49 2004 *************** *** 68,73 **** --- 68,74 ---- char *user, *password, #ifdef WIN32 + *service_dependencies, *service_user, *service_password, #endif Only in pg_autovacuum: pg_autovacuum.o