Re: PL/pgSQL PERFORM with CTE - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: PL/pgSQL PERFORM with CTE
Date
Msg-id CAFj8pRBqYqRB0y4r9Zihs_Nzkss=OCEERnn8fDAr0uXDzikjsw@mail.gmail.com
Whole thread Raw
In response to Re: PL/pgSQL PERFORM with CTE  (Merlin Moncure <mmoncure@gmail.com>)
Responses Re: PL/pgSQL PERFORM with CTE  ("David E. Wheeler" <david@justatheory.com>)
List pgsql-hackers



2013/8/23 Merlin Moncure <mmoncure@gmail.com>
On Fri, Aug 23, 2013 at 1:38 PM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
>
>
>
> 2013/8/23 Merlin Moncure <mmoncure@gmail.com>
> I think so is not good if some programming language functionality does one
> in one context (functions) and does something else in second context
> (procedures).

It's not really different -- it means 'return if able'.  Also there
are a lot of things that would have to be different for other reasons
especially transaction management.  It's not reasonable to expect same
behavior in function vs procedure context -- especially in terms of
sending output to the caller.

> On second hand, I am thinking so requirement PERFORM is good. A query that
> does some, but result is ignored, is strange (and it can be a performance
> fault), so we should not be too friendly in this use case.

Completely disagree.  There are many cases where this is *not*
strange. For example:
SELECT writing_func(some_col) FROM foo;

it is about a personal taste - if you prefer more verbose or less verbose languages.

I feeling a PERFORM usage as something special and you example is nice case, where I am think so PERFORM is good for verbosity.

Regards

Pavel
 

merlin

pgsql-hackers by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: Performance problem in PLPgSQL
Next
From: "David E. Wheeler"
Date:
Subject: Re: PL/pgSQL PERFORM with CTE