Tom Lane escribió:
> "Steven Flatt" <steven.flatt@gmail.com> writes:
> > I noticed that the Postgres autovacuum process was vacuuming some tables
> > that had enabled = false in pg_autovacuum.
>
> I think what is happening is that because you set
> pg_autovacuum.freeze_max_age to zero, the thing always thinks that it's
> time to force an anti-wraparound vacuum. IOW a nondefault freeze age is
> still applied whether or not enabled is true.
That's correct.
> I'm not quite sure if that's a bug or a feature --- you could argue
> that it's a feature because it lets you suppress routine autovacuuming
> and still customize the anti-wraparound timing. Maybe it's a
> documentation bug: the docs say that enabled = false means the table
> is "never autovacuumed", but what the code seems to be implementing is
> "it's only autovacuumed when necessary to prevent wraparound". I
> think that's the behavior we want ...
IMO it's a usability bug which will be gone when we move to
pg_class.reloptions -- you won't need to set random values for options
you don't know what to set to.
As for documentation, this is mentioned somewhere. Perhaps not clearly
enough? OTOH I think the real problem is that people think
documentation can be skipped, thus they don't know the "fine print" --
so it won't matter how non-fine we make it.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.