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.

    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.

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.
--
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)


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to