2017-01-03 18:41 GMT+01:00 Jim Nasby <jim.na...@bluetreble.com>: > On 1/3/17 11:19 AM, Pavel Stehule wrote: > >> 2) There's no way to incrementally change those values for a >> single >> function. If you've set extra_errors = 'all' globally, a >> single >> function can't say "turn off the too many rows setting for >> this >> function". >> >> >> We can enhance the GUC syntax like "all -too_many_rows,-xxx" >> >> >> Why create all that framework when we could just have multiple >> plpgsql.blah GUCs? plpgsql.multirow_assign_level=FATAL solves that >> problem. We just need a plpgsql GUC for each backwards compatibility >> break. >> >> We have this framework already, so why don't use it. >> > > We *don't* have a framework that works for this, because you can't > incrementally modify extra_errors. Maybe extra_errors is an OK API for > static checking, but it's definitely a BAD API for something you'd need to > control at a function (or even statement) level.
I have different opinion then you - sure - it should not to change behave, it should to help with identification. And it is enough for this purpose. > > > If we never broke compatibility we'd still be allowing SELECT >> without FROM, NULL = NULL being TRUE, and a whole bunch of other >> problems. We'd also be stuck on protocol v1 (and of course not >> talking about what we want in v4). >> >> >> This was in dark age - how much users of plpgsql was in 2000? Hard to >> speak about Postgres as mature software in this era. >> > > I don't know about you' but I've considered Postgres to be mature since at > least 8.0, if not earlier. Actually, in many ways it was far more mature > than other databases I was using in 2000 (let alone 2007). > > We've successfully made incompatible changes that were *far worse* >> than this (ie: renaming pg_stat_activity.procpid). Obviously we >> shouldn't be breaking things willy-nilly, but these are >> long-standing warts (dare I say BUGS?) that should be fixed. They're >> ugly enough that someone took the time to break plpgsql out of the >> core code and fork it. >> >> We are not talk about features that can be simply marked as bugs, so >> there is not too much what we should to fix it. We should to help to >> users to identify some possible risk places. >> > > You keep claiming that these aren't serious bugs, yet someone felt so > strongly that they ARE serious bugs that they forked the entire PL. > Sorry, but it it is subjective - and there can be different opinions - some body would to prefer more rigidity, some other less rigidity. > > If you're not willing to even consider a compatibility break (with a means > to get the old behavior back) then I don't think there's any point in > continuing this thread, because some of these issues can NOT be reasonably > solved by a checker. yes, I don't would to consider about a compatibility break. I accept so you have different opinion. I'll send this patch + doc to next commitfest - and depends on commiters if the patch will be rejected or not. I know so it should not be fully fixed, but it is step forward from my perspective. Thank you for discussion Regards Pavel > > -- > Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX > Experts in Analytics, Data Architecture and PostgreSQL > Data in Trouble? Get it in Treble! http://BlueTreble.com > 855-TREBLE2 (855-873-2532) >