Re: Polymorphic "setof record" function?
От | Merlin Moncure |
---|---|
Тема | Re: Polymorphic "setof record" function? |
Дата | |
Msg-id | b42b73150901140846y11a22486r8793f23105145111@mail.gmail.com обсуждение исходный текст |
Ответ на | Polymorphic "setof record" function? (Christian Schröder <cs@deriva.de>) |
Ответы |
Re: Polymorphic "setof record" function?
Re: Polymorphic "setof record" function? |
Список | pgsql-general |
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. merlin
В списке pgsql-general по дате отправления: