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. merlin -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general