Hackers,
Here is a second attempt at autovacuum integration. Please have a look
at it. Note that this patch automatically creates three new files:
src/backend/postmaster/autovacuum.c
src/include/catalog/pg_autovacuum.h
src/include/postmaster/autovacuum.h
There are the following changes since the previous version:
- Xid wraparound is taken care of, with a database-wide VACUUM when the
limit is too close.
- Manually executing VACUUM or ANALYZE now updates the statistics for
autovacuum.
- EXEC_BACKEND case was relieved of a few bugs -- it now actually works.
- elog(ERROR) is now handled more gracefully; the error is emitted,
instead of a SEGV happening. The end result is the same, however:
a single error takes the process down, and the database will be
vacuumed again only after all other databases are processed.
- Adapted to the new cwd convention.
- My email address is changed, so that I won't be posting the patch
several times hopefully :-)
Note that I didn't make the autovacuum daemon more verbose. Running
postmaster -d2 (or server_log_messages or whatever the option is called,
to DEBUG2 or higher) shows some messages which are, I hope, what Matthew
was expecting. (It this is not the case please let me know.)
--
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
"El sabio habla porque tiene algo que decir;
el tonto, porque tiene que decir algo" (Platon).