Confused about a function returning SETOF

From: "Ken Winter" <ken(at)sunward(dot)org>
To: "PostgreSQL pg-general List" <pgsql-general(at)postgresql(dot)org>
Subject: Confused about a function returning SETOF
Date: 2006-03-22 04:00:33
Message-ID: 008801c64d65$2cde9c60$6706a8c0@kenxp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I have the following function:

CREATE or REPLACE FUNCTION public.lov_personinorganization_role_status(

varchar,

varchar)

RETURNS SETOF person_status_in_organization AS

$BODY$

DECLARE

rec person_status_in_organization%ROWTYPE;

role ALIAS FOR $1;

from_status ALIAS FOR $2;

BEGIN

FOR rec IN

SELECT * FROM person_status_in_organization lov,

status_in_organization_change_lov res

WHERE res.role = role

AND res.from_status = from_status

AND lov.role = res.role

AND lov.status = res.to_status

ORDER BY lov.display_order

LOOP

RETURN NEXT rec;

END LOOP; -- FOR rec IN person_status_in_organization

RETURN;

END; -- of lov_personinorganization_role_status

$BODY$

LANGUAGE 'plpgsql' VOLATILE;

Where person_status_in_organization is a table.

When I try to invoke it with:

select lov_personinorganization_role_status('Student','Applicant');

I get the error message:

ERROR: set-valued function called in context that cannot accept a set

CONTEXT: PL/pgSQL function "lov_personinorganization_role_status" line 15
at return next

Where have I gone astray?

~ TIA

~ Ken

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2006-03-22 04:00:49 Re: How I can get the real data type result instead of
Previous Message Tom Lane 2006-03-22 03:56:02 Re: PANIC: heap_update_redo: no block