Re: plpgsql.consistent_into - Mailing list pgsql-hackers

From Gavin Flower
Subject Re: plpgsql.consistent_into
Date
Msg-id 52D33955.4050604@archidevsys.co.nz
Whole thread Raw
In response to Re: plpgsql.consistent_into  (Florian Pflug <fgp@phlo.org>)
Responses Re: plpgsql.consistent_into
List pgsql-hackers
On 13/01/14 11:44, Florian Pflug wrote:
> On Jan12, 2014, at 22:37 , Pavel Stehule <pavel.stehule@gmail.com> wrote:
>> There is  GUC for variable_conflict already too. In this case I would to
>> enable this functionality everywhere (it is tool how to simply eliminate
>> some kind of strange bugs) so it needs a GUC.
>>
>> We have GUC for plpgsql.variable_conflict three years and I don't know
>> about any problem.
> I must say I hate behaviour-changing GUCs with quite some passion. IMHO
> they tend to cause bugs, not avoid them, in the long run. The pattern
> usually is
>
>    1) Code gets written, depends on some particular set of settings
>       to work correctly
>
>    2) Code gets reused, with little further testing since it's supposed
>       to be battle-proven anyway. Settings get dropped.
>
>    3) Code blows up for those corner-cases where the setting actually
>       matter. Debugging is hell, because you effectively have to go
>       over the code line-by-line and check if it might be affected by
>       some GUC or another.
>
> Only a few days ago I spent more than an hour tracking down a bug
> which, as it turned out, was caused by a regex which subtly changed its
> meaning depending on whether standard_conforming_strings is on or off.
>
> Some GUCs are unavoidable - standard_conforming_strings, for example
> probably still was a good idea, since the alternative would have been
> to stick with the historical, non-standard behaviour forever.
>
> But in this case, my feeling is that the trouble such a GUC may cause
> out-weights the potential benefits. I'm all for having a directive like
> #consistent_into (though I feel that the name could convey the
> meaning better). If we *really* think that this ought to be the default
> from 9.4 onward, then we should
>
>    *) Change it to always complain, except if the function explictly
>       specifies "#consistent_into on" or whatever.
>
>    *) Have pg_dump add that to all plpgsql functions if the server
>       version is < 9.4 or whatever major release this ends up in
>
> That's all just my opinion of course.
>
> best regards,
> Florian Pflug
>
>
>
Possibly there should be a warning put out, whenever someone uses some 
behaviour that requires a GUC set to a non-default value?


Cheers,
Gavin



pgsql-hackers by date:

Previous
From: "Erik Rijkers"
Date:
Subject: Re: nested hstore patch
Next
From: Craig Ringer
Date:
Subject: Re: Compiling extensions on Windows