From: | Merlin Moncure <mmoncure(at)gmail(dot)com> |
---|---|
To: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
Cc: | Stephen Frost <sfrost(at)snowman(dot)net>, Dimitri Fontaine <dimitri(at)2ndquadrant(dot)fr>, Hannu Krosing <hannu(at)2ndquadrant(dot)com>, David Fetter <david(at)fetter(dot)org>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: DO ... RETURNING |
Date: | 2013-06-11 16:36:51 |
Message-ID: | CAHyXU0y0a5rZmdD7=d61z8og-En_mq0RwNY8c1_N-dXLBMCUXw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Jun 11, 2013 at 11:26 AM, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> wrote:
> 2013/6/11 Stephen Frost <sfrost(at)snowman(dot)net>:
>> * Pavel Stehule (pavel(dot)stehule(at)gmail(dot)com) wrote:
>>> 2013/6/11 Stephen Frost <sfrost(at)snowman(dot)net>:
>>> > And this still has next-to-nothing to do with the specific proposal that
>>> > was put forward.
>>> >
>>> > I'd like actual procedures too, but it's a completely different and
>>> > distinct thing from making DO blocks able to return something.
>>>
>>> I think so it is related - we talk about future form of DO statement -
>>> or about future form of server side scripting.
>>
>> I don't believe there's any intent to ever have DO used for stored
>> procedures. Not only are stored procedures deserving of their own
>> top-level command (eg: CALL, as has been discussed before..), but I
>> believe they would necessairly have different enough semantics that
>> shoe-horning them into DO would end up breaking backwards compatibility.
>
> In this moment, DO doesn't support any feature that is in conflict
> with stored procedure functionality, because it is based on functions,
> and then it have to have limited functionality
>
> Syntax of procedures and functions is relatively well defined
>
> CREATE FUNCTION foo(..) ----> SELECT expression contains foo call
>
> CREATE PROCEDURE foo(..) ---> CALL foo()
>
> Now anonymous code block is based on functions, but it can be changed
> to respect context or usage without lost of compatibility.
>
> DO $$ ... $$ -- procedural behave -- just execute server side scripts
>
> CTE DO RETURNING $$ ... $$ -- functional behave, functional limits.
why does it have to be CTE?
merlin
From | Date | Subject | |
---|---|---|---|
Next Message | Stephen Frost | 2013-06-11 16:54:31 | Re: DO ... RETURNING |
Previous Message | Pavel Stehule | 2013-06-11 16:26:01 | Re: DO ... RETURNING |