Re: Converting postgresql.conf parameters to kilobytes
От | Shridhar Daithankar |
---|---|
Тема | Re: Converting postgresql.conf parameters to kilobytes |
Дата | |
Msg-id | 200406011801.56840.shridhar@frodo.hserus.net обсуждение исходный текст |
Ответ на | Re: Converting postgresql.conf parameters to kilobytes (Shridhar Daithankar <shridhar@frodo.hserus.net>) |
Ответы |
Re: Converting postgresql.conf parameters to kilobytes
|
Список | pgsql-hackers |
On Tuesday 01 June 2004 14:12, Shridhar Daithankar wrote: > Actually I need to find out few more things about it. It is not as simple > as adding a assign_hook. When I tried to initdb with changes, it demanded > 64MB of shared buffers which I (now) think that somewhere NBuffers are used > before postgresql.conf is parsed. So 8192*8000=64MB. But this is just > guesswork. Haven't looked in it there. Found it. Following is the code that is causing problem. guc.c:2998 ----------- if (conf->assign_hook) if (!(*conf->assign_hook) (newval, changeVal, source)) { ereport(elevel, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid value for parameter \"%s\": %d", name, newval))); return false; } if (changeVal || makeDefault) { if (changeVal) { *conf->variable = newval; conf->gen.source = source; } ----------- So even if assign_hook is executed, the value of variable is overwritten in next step which nullifies any factoring/change in value done in assign hook. I find this as a convention at many other place at guc.c. Call assign_hook and the overwrite the value. So is assign_hook called only to validate the value? How do I modify the value of the variable without getting specific? I tried if (changeVal && !(conf->assign_hook)) and it worked. However that is just for int variables. I am not sure if that is a design decision. What should I do? Regards,Shridhar
В списке pgsql-hackers по дате отправления: