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

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Steve Prentice <prentice(at)cisco(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: PATCH: make plpgsql IN args mutable (v1)
Date: 2009-07-30 21:06:17
Message-ID: 603c8f070907301406h589d1f94p33e70cbd7a6b6e2a@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Jul 30, 2009 at 4:37 PM, Steve Prentice<prentice(at)cisco(dot)com> wrote:
> 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 function would have failed to compile previously.

We're in the middle of a CommitFest right now for which the deadline
for submissions was 2009-07-14. Please go to
https://commitfest.postgresql.org/action/commitfest_view/open and add
your patch there.

Thanks,

...Robert

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bernd Helmle 2009-07-30 22:38:25 Re: mixed, named notation support
Previous Message Steve Prentice 2009-07-30 20:37:16 PATCH: make plpgsql IN args mutable (v1)