returning a record from a function? - Mailing list pgsql-sql

From Jon Obuchowski
Subject returning a record from a function?
Date
Msg-id 85256B6B.00121D32.00@procyon.terc.edu
Whole thread Raw
Responses Re: returning a record from a function?  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: returning a record from a function?  (Roberto Mello <rmello@cc.usu.edu>)
List pgsql-sql
Hello,

I am interested in returning complete records (based on existing table
structures) from a function; I know how to deal with record variables
_within_ a function (using PL/PGSQL), but am uncertain as how to instruct
the general CREATE FUNCTION syntax to return a recordset (versus a single
value corresponding to a simple or complex dataype).

My attempts to do so look like the following code (with table "foo"):
    CREATE FUNCTION get_newest_foo ()    RETURNS foo AS '         SELECT *              FROM foo
WHERE foo_id =                         (select MAX(foo_id) FROM foo);    ' LANGUAGE 'sql';
 

this compiles and executes without warnings or exceptions - but this is the
result which I get:    jono=> select get_newest_foo ();    get_newest_foo    -----------        3393448    (1 row)

I thought that this might be an oid (corresponding to the selected record),
but testing showed that this is not the case.

Any help with this is appreciated; if I am simply overlooking relevant
documentation I'd appreciate being pointed towards the relevant page.

thanks,
Jon




pgsql-sql by date:

Previous
From: Otis Gospodnetic
Date:
Subject: PLPGSQL func. defn. for returning resultset?
Next
From: Tom Lane
Date:
Subject: Re: returning a record from a function?