Re: PL/pgSQL 2

Поиск
Список
Период
Сортировка
От Joel Jacobson
Тема Re: PL/pgSQL 2
Дата
Msg-id CAASwCXc-YRKhmSe3mUJFijOnPdZT4LFGsH8X0GwuZmDdM2ZiNA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: PL/pgSQL 2  (Pavel Stehule <pavel.stehule@gmail.com>)
Ответы Re: PL/pgSQL 2  (Pavel Stehule <pavel.stehule@gmail.com>)
Re: PL/pgSQL 2  (Jan Wieck <jan@wi3ck.info>)
Список pgsql-hackers
On Wed, Sep 3, 2014 at 7:54 AM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
> I am not against to improve a PL/pgSQL. And I repeat, what can be done and
> can be done early:
>
> a) ASSERT clause -- with some other modification to allow better static
> analyze of DML statements, and enforces checks in runtime.
>
> b) #option or PRAGMA clause with GUC with function scope that enforce check
> on processed rows after any DML statement
>
> c) maybe introduction automatic variable ROW_COUNT as shortcut for GET
> DIAGNOSTICS rc = ROW_COUNT
>
> If you need more, and some users would more, then it job for new language
> really.

You fail to illustrate *why* it's a job for a new language.
All improvements suggested above are possible with plpgsql, and *should*
be improved in plpgsql, that I agree with.

But the 100% backwards-compatibiity ambition puts hard limits on
what's possible,
and if we can accept (100%-X) backwards compatibility where X is a small number,
then so much more ideas are possible, and that's why plpgsql2 is a good idea.

Hopefully, most of the plpgsql2 changes can be turned on/off in
plpgsql with PRAGMA clause with GUC,
but will be more messy than a good decent default behaviour.

I'm in favour of Tom's idea. To merely make the plpgsql2 "language" a
way of explicitly saying you want
a specific exact combination of features/beaviour/settings which we
can implemented in plpgsql's existing codebase.

Since it was about 100 posts since Tom's post, maybe it's worth
repeating for those who missed it:

> What I would think about is
>
>c) plpgsql and plpgsql2 are the same code base, with a small number
>of places that act differently depending on the language version.
>
>We could alternatively get the result by inventing a bunch of pragma
>declarations, or some similar notation, that control the behavioral
>changes one-at-a-time.  That might even be worth doing anyway, in
>case somebody likes some of the ideas and others not so much.  But
>I'd see the language version as a convenient shorthand for enabling a
>specified collection of pretty-localized incompatible behavior changes.
>If they're not pretty localized, there's going to be a barrier to
>uptake, very comparable to the python3 analogy mentioned upthread.
>
>                        regards, tom lane

I fully agree on this approach. It's maintainable and it will be
useful from day 1.



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Szymon Guz
Дата:
Сообщение: Re: PL/pgSQL 2
Следующее
От: Jeevan Chalke
Дата:
Сообщение: Re: Re: proposal: ignore null fields in not relation type composite type based constructors