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