fillfactor hides autovacuum parameters in 8.4.0
| От | Itagaki Takahiro |
|---|---|
| Тема | fillfactor hides autovacuum parameters in 8.4.0 |
| Дата | |
| Msg-id | 20090818185219.9DA6.52131E4D@oss.ntt.co.jp обсуждение исходный текст |
| Ответы |
Re: fillfactor hides autovacuum parameters in 8.4.0
Re: fillfactor hides autovacuum parameters in 8.4.0 Re: fillfactor hides autovacuum parameters in 8.4.0 Re: fillfactor hides autovacuum parameters in 8.4.0 |
| Список | 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 по дате отправления: