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 по дате отправления: