Re: PATCH: make plpgsql IN args mutable (v1)

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: PATCH: make plpgsql IN args mutable (v1)
Дата
Msg-id 162867790907302357y2e27bb3bsb278ad51221d55dd@mail.gmail.com
обсуждение исходный текст
Ответ на PATCH: make plpgsql IN args mutable (v1)  (Steve Prentice <prentice@cisco.com>)
Список pgsql-hackers
2009/7/30 Steve Prentice <prentice@cisco.com>:
> Since I didn't get completely shot out of the water and a couple people
> seemed to think it was helpful, I'm submitting this patch for consideration
> in the next commitfest.
>
> This patch changes plpgsql IN parameters so they are mutable. Previously,
> they were being forced constant. This patch modifies the plpgsql.sql
> regression test and corresponding .out file. The regression test also makes
> sure the passed in parameter does not get changed in the calling function.
>
> I decided not to update the docs for this change because the docs don't
> currently indicate that an IN parameter is constant and I didn't want to
> encourage it because it isn't universally considered good programming
> practice to assign to an IN parameter. If others think we need a doc change
> for this, I'll update the patch.
>
> The following function will compile with this patch:
>
>  create or replace function param_assign_test(a int, val int) returns void
> as $$
>  begin
>    a := val;
>  end
>  $$ language plpgsql;
>

This behave is in conflict with PL/SQL, what should do some problems.
I thing, so I understand well, why this behave is in PL/SQL. It hasn't
sense in plpgsql, because OUT and INOUT params has little bit
different syntax (calling) and nobody will do similar bugs (perhaps).
What is interesting - this behave is in conformity with SQL/PSM, where
parameters are mutable too.

I am for it. PL/pgSQL doesn't promise compatibility with PL/SQL and
this change should to help some beginners (and this limit is
artificial and unnecessary).

Regards
Pavel Stehule


> This function would have failed to compile previously.
>
> -Steve
>
>
>
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>
>


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

Предыдущее
От: Pavel Stehule
Дата:
Сообщение: Re: mixed, named notation support
Следующее
От: KaiGai Kohei
Дата:
Сообщение: Re: [PATCH] [v8.5] Security checks on largeobjects