Dimitri Fontaine <dimitri@2ndQuadrant.fr> writes:
> We could imagine several syntax to show up the idea, common keywords
> here include LAMBDA, FLET or LABELS, but I think that expanding WITH
> would be preferable for us.
> WITH FUNCTION foo(param list) returns rettype language foo AS (
> definition here
> )
> <query using foo() here>;
I like this idea. This gets rid of both the "how to pass parameters"
and the "how to return results" issues that exist with DO, as well as
assorted implementation problems that you hinted at by asking whether
DO would still be a utility command.
In the syntax-bikeshedding department, we'd still need the function body
to be a string literal, and I think we'd want the ability to add
options such as IMMUTABLE/VOLATILE. So I'd be inclined to move all
these options inside the parentheses that the WITH syntax dictates.
Perhaps
WITH FUNCTION foo(paramlist) AS (returns intas $$ ... $$language plpgsql... other CREATE FUNCTION options as needed
...
)
query here ...
regards, tom lane