Thread: Question about function

Question about function

From
Bruno Lopes (Desenvolvimento)
Date:
Hello list.
That might sound very lame but I am new to postgres.
I was looking into the postgres guide and trying to make a function to make an insert to a table.
but postgres returns me an error in the RETURN of the function

query is:
CREATE FUNCTION test() RETURNS bool AS 'INSERT INTO b (nome) VALUES (\'PQP\');' LANGUAGE 'sql';
>> function declared to return type bool, but final query is not a retrieve

obviously my return type is incorrect... so what should I use?

______________________________________
Scanned and protected by Inflex
http://pldaniels.com/inflex

Re: Question about function

From
Stephan Szabo
Date:
On Wed, 13 Mar 2002, Bruno Lopes wrote:

> Hello list.
> That might sound very lame but I am new to postgres.
> I was looking into the postgres guide and trying to make a function to make an insert to a table.
> but postgres returns me an error in the RETURN of the function
>
> query is:
> CREATE FUNCTION test() RETURNS bool AS 'INSERT INTO b (nome) VALUES (\'PQP\');' LANGUAGE 'sql';
> >> function declared to return type bool, but final query is not a retrieve
>
> obviously my return type is incorrect... so what should I use?

I think you need to end an sql language function with a select of some
sort (even if it's just say select true;)



Re: Question about function

From
Tom Lane
Date:
Bruno Lopes (Desenvolvimento) <blvieira@pcsolution.com.br> writes:
> CREATE FUNCTION test() RETURNS bool AS 'INSERT INTO b (nome) VALUES (\'PQP\');' LANGUAGE 'sql';
> function declared to return type bool, but final query is not a retrieve

> obviously my return type is incorrect... so what should I use?

It's unhappy because you're not returning anything (no final SELECT
statement).

You might consider updating to a more recent PG version; that error
message hasn't been worded that way for quite awhile.

            regards, tom lane