On Thu, Sep 25, 2014 at 12:46 AM, Tom Lane <t...@sss.pgh.pa.us> wrote:
> Gregory Smith <gregsmithpg...@gmail.com> writes: > > I don't see any agreement on the real root of a problem here yet. That > > makes gauging whether any smaller change leads that way or not fuzzy. I > > personally would be fine doing nothing right now, instead waiting until > > that's charted out--especially if the alternative is applying any of the > > rounding or error throwing ideas suggested so far. I'd say that I hate > > to be that guy who tells everyone else they're wrong, but we all know I > > enjoy it. > > TBH I've also been wondering whether any of these proposed cures are > better than the disease. The changes that can be argued to make the > behavior more sane are also ones that introduce backwards compatibility > issues of one magnitude or another. And I do not have a lot of sympathy > for "let's not change anything except to throw an error in a case that > seems ambiguous". That's mostly being pedantic, not helpful, especially > seeing that the number of field complaints about it is indistinguishable > from zero. > > Then what does it matter that we'd choose to error-out? > I am personally not as scared of backwards-compatibility problems as some > other commenters: I do not think that there's ever been a commitment that > postgresql.conf contents will carry forward blindly across major releases. > So I'd be willing to break strict compatibility in the name of making the > behavior less surprising. But the solutions that have been proposed that > hold to strict backwards compatibility requirements are not improvements > IMHO. > Or, put differently, the pre-existing behavior is fine so don't fix what isn't broken. This patch simply fixes an oversight in the original implementation - that someone might try to specify an invalid value (i.e., between 0 and 1). if 0 and -1 are flags, then the minimum allowable value is 1. The logic should have been: range [1, something]; 0 (optionally); -1 (optionally). Values abs(x) between 0 and 1 (exclusive) should be disallowed and, like an attempt to specify 0.5 (without units), should throw an error. David J.