Search Postgresql Archives

Re: Polymorphic "setof record" function?

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

 



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


[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