Thank you for the comments. It was a bug in my patch as another developer says. I've not considered about the value 'zero', sorry.
I attached new patch. This patch rounds up the value when only it's less than required unit. Like below. (unit: min) 0->0 0s->0 10s->1 70s->1 Although my original complaint is fixed, I'm worried about this change will make users confusing. Is it better to raise a message(ex. INFO) when a value less than required unit is set? 2014-08-21 21:00 GMT+09:00 Heikki Linnakangas <hlinnakan...@vmware.com>: > On 07/10/2014 09:52 AM, Tomonari Katsumata wrote: > >> Hi, >> >> Several couple weeks ago, I posted a mail to pgsql-doc. >> http://www.postgresql.org/message-id/53992ff8.2060...@po.ntts.co.jp >> >> In this thread, I concluded that it's better to >> round up the value which is less than its unit. >> Current behavior (rounding down) has undesirable setting risk, >> because some GUCs have special meaning for 0. >> >> And then I made a patch for this. >> Please check the attached patch. >> > > The patch also rounds a zero up to one. A naked zero with no unit is not > affected, but e.g if you have "log_rotation_age=0s", it will not disable > the feature as you might expect, but set it to 1 minute. Should we do > something about that? > > If we're going to explain the rounding up in the manual, we also need to > explain the normal rule, which is to round down. How about this: > > --- a/doc/src/sgml/config.sgml > +++ b/doc/src/sgml/config.sgml > @@ -44,6 +44,15 @@ > (seconds), <literal>min</literal> (minutes), <literal>h</literal> > (hours), and <literal>d</literal> (days). Note that the multiplier > for memory units is 1024, not 1000. > + > + <para> > + If a memory or time setting is specified with more precision than the > + implicit unit of the setting, it is rounded down. However, if > rounding > + down would yield a zero, it is rounded up to one instead. For > example, > + the implicit unit of <varname>log_rotation_age</varname is minutes, > so if > + you set it to <literal>150s</literal>, it will be rounded down to two > + minutes. However, if you set it to <literal>10s</literal>, it will be > + rounded up to one minute. > </para> > > - Heikki > > > > > -- > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-hackers >
time-unit-guc-round-up_v2.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers