fillfactor hides autovacuum parameters in 8.4.0 - Mailing list pgsql-bugs

From Itagaki Takahiro
Subject fillfactor hides autovacuum parameters in 8.4.0
Date
Msg-id 20090818185219.9DA6.52131E4D@oss.ntt.co.jp
Whole thread Raw
Responses Re: fillfactor hides autovacuum parameters in 8.4.0  (Euler Taveira de Oliveira <euler@timbira.com>)
Re: fillfactor hides autovacuum parameters in 8.4.0  (Alvaro Herrera <alvherre@commandprompt.com>)
Re: fillfactor hides autovacuum parameters in 8.4.0  (Alvaro Herrera <alvherre@commandprompt.com>)
Re: fillfactor hides autovacuum parameters in 8.4.0  (Itagaki Takahiro <itagaki.takahiro@oss.ntt.co.jp>)
List pgsql-bugs
PostgreSQL version: 8.4.0
Operating system:   all versions

If we set FILLFACTOR to a table, autovacuum parameters in postgresql.conf
will not affect to the table; default values are always used.

In 8.4.0, we create StdRdOptions if a relation has some fields in
pg_class.reloption. Then, unspecified fields are filled with the
default values. The values are always hard-coded default values and
don't reflect current GUC settings.

For example:
    pg_class.reloptions = {fillfactor=70}
        makes
    StdRdOptions { fillfactor=70, vacuum_scale_factor=0.2, ... }
                                  ~~~~~~~~~~~~~~~~~~~~~~~
                                      always default

To fix the bug, each field in StdRdOptions should have "not-specified" flag.
If not specified, autovacuum should use current GUC settings instead of
reloptions. Is it possible to change the default values of reloptions
to some magic number (-1 or so) ?

There might be another idea that we fill StdRdOptions with current GUC
settings instead of hard-coded default values. It looks cleaner, but
we need to treat dynamic default values and invalidate reloptions
if we reload settings.

How do we fix it?

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center

pgsql-bugs by date:

Previous
From: Robert Haas
Date:
Subject: Re: BUG #4971: Backend crash while doing nothing...
Next
From: "veneti"
Date:
Subject: BUG #4991: problem with ODBC driver 8.4