forgot the list...

On Thu, Jun 12, 2014 at 2:05 PM, David Johnston <david.g.johns...@gmail.com>
wrote:

> On Thu, Jun 12, 2014 at 1:25 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:
>
>> David Johnston <david.g.johns...@gmail.com> writes:
>> > On Thursday, June 12, 2014, Tom Lane <t...@sss.pgh.pa.us> wrote:
>> >> I don't think that argument holds water either.  We routinely make
>> >> changes that break old postgresql.conf files.  Not in minor updates
>> >> of course, but none of this is material for back-patching.
>>
>> > Then I'd pick throwing an error if a floating point value is assigned
>> to a
>> > parameter that is defined to accept integer. I'd rather actually break
>> the
>> > file and not silently redefine its contents.
>>
>> The case that was under discussion here had nothing to do with float vs
>> integer: it was about rounding a time-interval value to the precision
>> chosen for the underlying variable.
>
>
> ​I get that: if I request "30s" I get a result of 0.5 - which is then
> truncated​ to zero; "90s" = 1.5 -> 1
>
> That is, if you write "10s" for
>> a variable that's stored in minutes, what should you get?
>
>
> ​0.166667
>
>
>> I doubt that
>> "an error" is the best answer here
>
>
> ​If we cannot honor the exact value requested telling that to the user is
> definitely a valid outcome​
>
>
>> --- one of the purposes of the units
>> system for GUCs was to avoid people having to pay close attention to
>> exactly what the measurement unit of each GUC is.
>
>
> ​And if their desired value falls into the expected range of allowed
> values ​then they can remain oblivious.  But if they want to do something
> that the system is incapable of supporting forcing them to explicitly chose
> a different value is just as valid a decision as picking one for them.
>
> ​Restricting that to scaling up - which is what happens in reality anyway
> - means that at least whatever the user tells the system is either what
> they get or they are told their request is invalid.
>
> The likelihood of someone requesting "120s" when they desire "2m" is
> unlikely - I would think that most typically they would be requesting a
> number of, in this case, seconds that are less than the default unit​, 1
> minute in this case.
>
> If it only errors when the final result is zero I would not be overly
> opposed to situations like "90s" rounding to "2m" instead of "1m".
>
>
>> So the realistic
>> answers are "zero minutes" or "1 minute"; and if "zero minutes" is a
>> special case then there's considerable merit in making the value go to
>> "1 minute" instead.
>>
>
> Another supporting argument is that the risk profile for anyone depending
> on a non-explicit zero to obtain zero behavior ​is small - if they changed
> from default and were checking to make sure the final result matched their
> expectation they would see the relevant difference.  The OP complaint
> indeed is "I thought I enabled this but it didn't work".
>
> I am somewhat concerned about, say "100m" rounding to 2 hours instead of 1
> hour.  The minute/second rounding is fairly small but for larger unit-pairs
> the amount of delta before and after can be considerable.  But there may be
> few, if any, parameters that could be so affected so probably a moot
> concern.
>
>
>> Note that right at the moment the behavior is "round down", ie you get
>> zero not 1 minute even if you wrote "59s".  I claim that's definitely
>> surprising.
>>
>>
> ​As is rounding "70s" up to "2m"
>
> In both cases since we are taking invalid data and substituting valid data
> we have to document what is being done.  Its just  the probability of
> someone realizing and caring about what we are doing is smaller if we use
> ceiling instead of floor.
>
> While I am generally in favor of requiring explicitness there is minimal
> downside risk in leaving "implicit casting" of the data in this context.
>  Given that conclusion, making the change to ceiling from floor makes sense
> - making it possible to only achieve zero explicitly is worthwhile. For all
> non-zero situations the direction of rounding is largely immaterial if you
> accept that rounding has value.
>
> David J.
>
>

Reply via email to