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
>
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 ? |