Re: set returning function with variable argument - possible?

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Frank Miles <fpm(at)u(dot)washington(dot)edu>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: set returning function with variable argument - possible?
Date: 2011-06-16 15:40:52
Message-ID: BANLkTinHu3u9MLsjsB9YyMXhPtJD_Dd=-Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello

I don't know if I understand well, but you can do

select (f).* from (select f(var) from xtable where ...) x;

Regards

Pavel Stehule

2011/6/16 Frank Miles <fpm(at)u(dot)washington(dot)edu>:
> I have a function that returns a set of a defined type, something like:
>
>        CREATE OR REPLACE FUNCTION f(arg) RETURNS SETOF return_type AS $$
>                ...
>        $$ LANGUAGE 'plpgsql' STABLE with (isstrict);
>
> Ordinarily this function is called:
>
>        SELECT * FROM f(constant);
>
> But what I want to do is more like:
>        SELECT * FROM f(var) WHERE var IN (SELECT var FROM xtable WHERE ...);
>
> This fails, as does
>        SELECT * FROM f(var) WHERE var IN (constant);
>
> ->> Is there some syntax that will allow me to perform this operation?
>
> Note that there are differing ways for "arg" to be determined, so I'd rather
> not
> merge this operation into f() - I would have to have a number of f()'s, each
> with
> its own mechanism for developing its "arg"s.
>
> -------------
> Running Postgresql 8.4.7 on Debian 'squeeze'.
>
> Thanks for any pointers to documentation that I have overlooked in my
> search!
>
>        -f
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Greg Smith 2011-06-16 15:53:24 Re: PostgreSQL 9.0 or 9.1 ?
Previous Message Nicholson, Brad (Toronto, ON, CA) 2011-06-16 15:29:16 Re: PostgreSQL 9.0 or 9.1 ?