On 02/20/2010 07:12 PM, Raymond O'Donnell wrote:
On 20/02/2010 13:28, Nilesh Govindarajan wrote:
Okay here's my query -
select c.cid, c.subject, n.title from comments c, node n where c.nid =
n.nid and c.status != 0;
This is the query to check list of comments requiring admin approval and
also the article titles on which this is posted.
I want to see this result on the screen at psql prompt. Since it may
return multiple rows, a cursor has to be employed here.
Now if I employ a cursor here in the function/procedure, how to see the
results ?
Have you declared your function to return SETOF the row type returned?
if so, you don't have to use a cursor, and the function will simply
return all the rows.
For example, using SQL (not tested):
create or replace function comments_for_approval()
returns setof record
as
$$
select c.cid, c.subject, n.title
from comments c, node n
where c.nid = n.nid
and c.status != 0;
$$
language sql;
....or something like that. If you use pl/pgsql, then you'll need to use
a different idiom:
create or replace function comments_for_approval()
returns setof record
as
$$
declare
m_rec record;
begin
for m_rec in
select c.cid, c.subject, n.title
from comments c, node n
where c.nid = n.nid
and c.status != 0
loop
return next m_rec;
end loop;
return;
end;
$$
language plpgsql;
Either way, simply execute the query in psql:
select * from comments_for_approval();
HTH,
Ray.
Ah perfect ! problem solved. Thanks !
--
Nilesh Govindarajan
Site & Server Adminstrator
www.itech7.com
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general