Search Postgresql Archives

Re: Polymorphic "setof record" function?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 14 Jan 2009 11:46:29 -0500
"Merlin Moncure" <mmoncure@xxxxxxxxx> wrote:

> On 1/13/09, Christian Schröder <cs@xxxxxxxxx> 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


-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux