Re: expression evaluation with expected datatypes - Mailing list pgsql-hackers

From Tom Lane
Subject Re: expression evaluation with expected datatypes
Date
Msg-id 20735.1341930709@sss.pgh.pa.us
Whole thread Raw
In response to Re: expression evaluation with expected datatypes  (Dimitri Fontaine <dimitri@2ndQuadrant.fr>)
Responses Re: expression evaluation with expected datatypes
List pgsql-hackers
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


pgsql-hackers by date:

Previous
From: Greg Stark
Date:
Subject: Re: Allow replacement of bloated primary key indexes without foreign key rebuilds
Next
From: Shaun Thomas
Date:
Subject: Re: Synchronous Standalone Master Redoux