Pavel Stehule wrote:

Tom Lane wrote:
> "Pavel Stehule" <[EMAIL PROTECTED]> writes:
>> a,b,c := out3fce(1); -- Simultaneous assignment
>
> I thought we rejected that idea once already, on the grounds that it
> would make it too hard to tell the difference between intended code
> and typos.
>

In any case, I had some questions:

. is it compatible with PLSQL?
. can the effect be achieved by assigning to a composite?

I looked into SQL2003, and SQL2003 knows it (SQL/PSM):

<assignment statement> ::=
   <singleton variable assignment>
 | <multiple variable assignment>
<multiple variable assignment> ::=
   SET <assignment target list> <equals operator> <assigned row>
<assignment target list> ::=
<left paren> <assignment target> [ { <comma> <assignment target> }... ] <right paren>
<singleton variable assignment> ::=
   SET <assignment target> <equals operator> <assignment source>


The parentheses are apparently required for multiple variables, so in our case it might look like this:

 (a,b,c) := foo(bar);

That might overcome the objection Tom referred to, I guess?


cheers

andrew


---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

              http://www.postgresql.org/docs/faq

Reply via email to