Re: [HACKERS] proposal: PLpgSQL parallel assignemnt
От | Pavel Stehule |
---|---|
Тема | Re: [HACKERS] proposal: PLpgSQL parallel assignemnt |
Дата | |
Msg-id | CAFj8pRBZ4qsx7mh_X-YfXesq_r-HTQusAWX2CdSft2wK66QLiA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] proposal: PLpgSQL parallel assignemnt (Pavel Stehule <pavel.stehule@gmail.com>) |
Ответы |
Re: [HACKERS] proposal: PLpgSQL parallel assignemnt
|
Список | pgsql-hackers |
2017-06-02 10:15 GMT+02:00 Pavel Stehule <pavel.stehule@gmail.com>:
2017-06-02 10:06 GMT+02:00 Craig Ringer <craig@2ndquadrant.com>:On 2 June 2017 at 15:51, Pavel Stehule <pavel.stehule@gmail.com> wrote:
> a, b := fx();
>
> Comments, notes, ideas?
I'd be pretty happy to have
(a, b) = (x, y);
(a, b) = f(x);
which is SQL-esque.This is not too far to my proposal - and it is fully adequate alternative.
The ANSI form is related to SET or UPDATE commands - so in this case I see classic languages style https://en.wikipedia.org/wiki/Assignment_(computer_science) better. The assign statement in PLpgSQL is not related to embedded SQL. If we introduce SQL syntax and SET commands for schema variables then ( ) syntax is perfect, but for := PLpgSQL I am not sure
It is maybe strange, but
SET (a,b) = (SELECT a,b FROM foo)
a, b := fx()
are sentences from two independent worlds and different syntax can be correct (depends how much we would to integrate procedural and SQL worlds .. 100% T-SQL, 80% SQL/PSM, ..20% PLpgSQL or 5%PL/SQL)
Regards
Pavel
But what, if anything, does Ada do?What I know, no, Ada has not this statement - but the design of OUT parameters in Ada absolutely different than PostgreSQL - so in this case we cannot to use Ada language as our base :(RegardsPavel
--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: