Re: Polymorphic "setof record" function? - Mailing list pgsql-general

From Ivan Sergio Borgonovo
Subject Re: Polymorphic "setof record" function?
Date
Msg-id 20090114203404.18456f4a@dawn.webthatworks.it
Whole thread Raw
In response to Re: Polymorphic "setof record" function?  ("Merlin Moncure" <mmoncure@gmail.com>)
List pgsql-general
On Wed, 14 Jan 2009 11:46:29 -0500
"Merlin Moncure" <mmoncure@gmail.com> wrote:

> On 1/13/09, Christian Schröder <cs@deriva.de> wrote:
> > Hi list,
> >  I have written a function that returns a setof record. The
> > function has a table name as a parameter and the resulting
> > records have the same structure as this table. Is there any easy
> > way to specify this when I call the function? If the table has
> > many columns then it's annoying to specify all of them.
> >  I need something like:
> >    select * from myfunc('mytable') as x(like mytable)
> >  or
> >    select * from myfunc('mytable') as x(mytable%TYPE)
> >
> >  Is there any solution for PostgreSQL 8.2?

> Unfortunately to the best of my knowledge there is no way to do
> this. I think what you want is to have sql functions that
> specialize on type in the way that templates do in C++.

> This is _not_ the same as polymorhphic functions(anyelement, etc),
> because you would _end_up_with_as_separate_plan_per_type_ (and
> other reasons).  Polymorphic functions are more similar to how
> inheritance in c++ works...you operate on the 'base' type.

> The type inferring operator (%type) is only part of the problem,
> you need to be able to create functions that it is known to the
> planner that it's template style:
>
> IMHO, this is a better abstraction than our current anyX
> pseudotypes, outside of the anyarray tricks.

I still haven't got the time to use them, but wouldn't refcursor
help?
Unfortunately I didn't find very enlightening examples of refcursors
use around.

--
Ivan Sergio Borgonovo
http://www.webthatworks.it


pgsql-general by date:

Previous
From: "Thom Brown"
Date:
Subject: Change empty database from ASCII to UTF-8 encoded
Next
From: Raymond O'Donnell
Date:
Subject: Re: Change empty database from ASCII to UTF-8 encoded