Well I didn't get out of the office as early as I had hoped, and I have
stayed up longer than I had planned, but I have a patch that addresses
many of the issues raised by Tom. Please take a look at let me know if
I'm heading in the right direction.
Issues addressed:
* Add ability to read username and password from autovac.passwd file in
$PGDATA (format is username:password)
* Update patch, make sure it doesn't revert the recent write_stderr
changes in postmaster.c
* Remove static from functions defined in pg_autovacuum.h
* Remove if(sigsetjmp ...) code block
* Removed improper exit()'s, replaced with proc_exit() or
ereport(ERROR)
* Change elog() calls to ereport()
* Change elog(WARNING, "pg_autovacuum: autovac is enabled, but requires
stats_row_level which is not enabled"); to only be called once on
postmaster startup
* Remove unneeded code that was cut and pasted from the bgwriter example
Issues not addressed in this patch:
* Dynamic linking of libpq: I need someone else to do this.
* Autovacuum Shutdown: I'm going to take a stab at this tonight
(Wednesday) we will see what I come up with.
To apply this patch:
1) Move pg_autovacuum.[ch] from contrib to
src/backend/postmaster/autovacuum.c and
src/include/postmaster/autovacuum.h respectively.
2) Place the attached pg_autovacuum.h in src/include/catelog/
3) Apply the attached diff file
Thanks again,
Matthew O'Connor