Pavel Stehule wrote:
>
>> Tom Lane wrote:
>> > "Pavel Stehule" <pavel.stehule@hotmail.com> 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