Galy Lee wrote:
Hi,
I'll deal with each issue separately.
> * Bug-1: Invalid lower bound of autovacuum_cost_limit
>
> autovacuum_vacuum_cost_limit should be the following value:
> autovacuum_vacuum_cost_limit = -1, or [1, 10000]
> (0 should be prohibited. )
>
> But 0 can also be accepted for autovacuum_vacuum_cost_limit now.
This is solved easily by adding a check in an assign hook (attached).
The only remaining problem here is that other error messages could be
clearer.
So this is correct:
$ postmaster -c autovacuum_vacuum_cost_limit=0
17902 FATAL: invalid value for parameter "autovacuum_vacuum_cost_limit": 0
But this is misleading (started postmaster with good value, then edited
postgresql.conf and entered "-2"):
17903 LOG: received SIGHUP, reloading configuration files
17903 LOG: -2 is outside the valid range for parameter
"autovacuum_vacuum_cost_limit" (-1 .. 1000)
Note how it still says the range is -1 .. 1000.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Index: src/backend/utils/misc/guc.c
===================================================================
RCS file: /home/alvherre/Code/cvs/pgsql/src/backend/utils/misc/guc.c,v
retrieving revision 1.395
diff -c -p -r1.395 guc.c
*** src/backend/utils/misc/guc.c 5 Jun 2007 21:50:19 -0000 1.395
--- src/backend/utils/misc/guc.c 7 Jun 2007 15:51:55 -0000
*************** static const char *show_tcp_keepalives_i
*** 169,174 ****
--- 169,175 ----
static const char *show_tcp_keepalives_count(void);
static bool assign_autovacuum_max_workers(int newval, bool doit, GucSource source);
static bool assign_maxconnections(int newval, bool doit, GucSource source);
+ static bool assign_autovac_vac_cost_limit(int newval, bool doit, GucSource source);
/*
* GUC option variables that are exported from this module
*************** static struct config_int ConfigureNamesI
*** 1329,1335 ****
NULL
},
&autovacuum_vac_cost_limit,
! -1, -1, 10000, NULL, NULL
},
{
--- 1330,1336 ----
NULL
},
&autovacuum_vac_cost_limit,
! -1, -1, 10000, &assign_autovac_vac_cost_limit, NULL
},
{
*************** assign_autovacuum_max_workers(int newval
*** 6831,6834 ****
--- 6832,6842 ----
return true;
}
+ /* autovacuum_vacuum_cost_limit may be -1, but not 0 */
+ static bool
+ assign_autovac_vac_cost_limit(int newval, bool doit, GucSource source)
+ {
+ return newval != 0;
+ }
+
#include "guc-file.c"
---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at
http://www.postgresql.org/about/donate