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  (Shridhar Daithankar <shridhar@frodo.hserus.net>)
Список 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 по дате отправления:

Предыдущее
От: Shridhar Daithankar
Дата:
Сообщение: Re: Converting postgresql.conf parameters to kilobytes
Следующее
От: Manfred Koizar
Дата:
Сообщение: Re: SELECT * FROM LIMIT 1; is really slow