Re: Converting postgresql.conf parameters to kilobytes - Mailing list pgsql-hackers

From Shridhar Daithankar
Subject Re: Converting postgresql.conf parameters to kilobytes
Date
Msg-id 200406021923.35360.shridhar@frodo.hserus.net
Whole thread Raw
In response to Re: Converting postgresql.conf parameters to kilobytes  (Shridhar Daithankar <shridhar@frodo.hserus.net>)
Responses Re: Converting postgresql.conf parameters to kilobytes
List pgsql-hackers
Hi,

Any updates/opinions? Should we convert assign hooks to perform actual 
assignment and custom validation instead of just custom validation? It is 
clear from README that it is for validation purposes only..

Or Shall i look for some place else to perform conversion?

Shridhar

On Tuesday 01 June 2004 18:01, Shridhar Daithankar wrote:
> 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))


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Nested transactions and tuple header info
Next
From: Alvaro Herrera
Date:
Subject: Re: Nested transactions and tuple header info