Re: pl/pgsql and returning rows - Mailing list pgsql-sql

From Richard Huxton
Subject Re: pl/pgsql and returning rows
Date
Msg-id 00b701c0b697$ab527a40$1001a8c0@archonet.com
Whole thread Raw
In response to pl/pgsql and returning rows  (wade <wade@wavefire.com>)
List pgsql-sql
From: "wade" <wade@wavefire.com>

> create function get_details(int4) returns details as '
> declare
>   ret details%ROWTYPE;
>   site_rec    record;
>   cntct       contacts%ROWTYPE;
> begin
>   select into site_rec  * sites_table where id = $1 limit 1;
>   select into cntct * from contacts where id = site_rec.contact;
>
> -- and then i populate rows of ret.
>   ret.name := cntct.name;
>   ret.ip := site_rec.ip;
> .
> .
> .
>   return ret;
> end;
> ' language 'plpgsql';
>
> now the problem is when is when I do a:
>   SELECT get_details(55);
> all i get is a single oid-looking return value:
>  get_details
> -------------
>  136295592
> (1 row)

Sorry - you can't return a row from a function at the present time (except
for trigger functions which are special) although I believe this is on the
todo list for a later 7.x release.

Just from the top of my head, you might try a view with a select rule,
although I'm not completely clear what your objectives are.

- Richard Huxton



pgsql-sql by date:

Previous
From: Justin Clift
Date:
Subject: Re: Function Vanished
Next
From: juerg.rietmann@pup.ch
Date:
Subject: Re: Still don't know how to build this string ? how to concat ??