Re: set returning function with variable argument - possible? - Mailing list pgsql-general

From Pavel Stehule
Subject Re: set returning function with variable argument - possible?
Date
Msg-id BANLkTinHu3u9MLsjsB9YyMXhPtJD_Dd=-Q@mail.gmail.com
Whole thread Raw
In response to set returning function with variable argument - possible?  (Frank Miles <fpm@u.washington.edu>)
List 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@u.washington.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@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

pgsql-general by date:

Previous
From: Frank Miles
Date:
Subject: set returning function with variable argument - possible?
Next
From: Greg Smith
Date:
Subject: Re: PostgreSQL 9.0 or 9.1 ?