Re: Can't Get SETOF Function to Work

From: Michael Fuhr <mike(at)fuhr(dot)org>
To: Lane Van Ingen <lvaningen(at)esncc(dot)com>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Can't Get SETOF Function to Work
Date: 2005-11-02 00:44:59
Message-ID: 20051102004459.GA88879@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Tue, Nov 01, 2005 at 04:38:12PM -0500, Lane Van Ingen wrote:
> Have tried perhaps 20+ alternatives on this plpgsql function, but can't get
> it to work. Suspect I have done something wrong either with RETURN values,
> creating of a type, or (most likely) use of ROW().
> ...
> CREATE OR REPLACE FUNCTION router_history()
> RETURNS SETOF typ_history_rec_format AS
> $BODY$
> DECLARE
> returnValue RECORD;

Try declaring returnValue as typ_history_rec_format instead of RECORD.

> select into returnValue ROW(workarea.interface,workarea.updatedTime,
> work_rftype,workarea.rfspeed);

Get rid of the record constructor:

select into returnValue workarea.interface, workarea.updatedTime,
work_rftype, workarea.rfspeed;

Using your code with the above two changes and some canned data, I
got the function to work (where "work" means it ran and returned
some rows -- I didn't look closely at the logic to see if the results
were actually correct ;-).

--
Michael Fuhr

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Lane Van Ingen 2005-11-02 00:55:05 Re: Can't Get SETOF Function to Work
Previous Message Jim C. Nasby 2005-11-01 23:35:02 Re: Nested Table in PostgreSQL or some alternative Variants