On Sun, Aug 15, 2010 at 3:10 AM, Craig Ringer <cr...@postnewspapers.com.au>wrote:
> On 15/08/10 18:00, zhong ming wu wrote: > > > Thanks for any better solution to this > > CREATE TYPE > > However, you still have to have a special type around just for that > function, and you have to *maintain* it to ensure it always matches the > types/columns of the input tables. > > I frequently wish for type inference in PL/PgSQL functions returning > query results, so Pg could essentially create and destroy a type along > with the function, allowing you to reference columns in the functions > results without having to use RETURNS RECORD and all that AS > (column-list) pain. > > Of course, I don't want it badly enough to put my time where my mouth is > and try to code it ;-) . I'm not whining about the current situation, > just thinking about ways it could improve further. > > > How about just using OUT parameters? CREATE FUNCTION FOO(IN _id uuid, OUT col1 text, OUT col2 text) RETURNS SETOF record AS BEGIN select col1, col2 from test where id=_id; END; Then your output just has to match the signature of the OUT parameters. And you don't need to define anything when you call it. Mike