How to call SETOF function?

From: Iain Barnett <iainspeed(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: How to call SETOF function?
Date: 2010-01-07 01:01:39
Message-ID: 90CF8106-6EC6-494A-9457-0BA221745447@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

If I run the following (in either a terminal or the PgAdmin3 Query tool) I get the error:

ERROR: query has no destination for result data
SQL state: 42601
Hint: If you want to discard the results of a SELECT, use PERFORM instead.
Context: PL/pgSQL function "anything_all_udf" line 3 at SQL statement

How am I'm supposed to call the function so that I get the same result as the adhoc query it surrounds?

----

create table anything (
first serial primary key not null
, second varchar not null
, third timestamp default now() not null
);

insert into anything ( second ) values ( 'row a' );
insert into anything ( second ) values ( 'row b' );
insert into anything ( second ) values ( 'row c' );

CREATE OR REPLACE FUNCTION anything_all_udf(
) RETURNS setof anything
AS $$
BEGIN
select * from anything;
END;
$$
LANGUAGE plpgsql;

select * from anything_all_udf( );

Regards,
Iain

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Aleksey Tsalolikhin 2010-01-07 01:20:36 WAL archiving is stuck on an old file that was deleted -- how to get it going again? (8.4.2)
Previous Message Tom Lane 2010-01-06 23:38:56 Re: interesting check constraint behavior