From: | Yudie Pg <yudiepg(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: How to join function with a table? |
Date: | 2005-08-08 22:57:44 |
Message-ID: | e460d0c050808155770e29933@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 8/5/05, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Certainly not --- per the SQL spec, different elements of a FROM list
> are independent, so the datelist relation can't refer to P.
> (I think SQL 2003 has a construct called LATERAL that would allow
> such things, but we don't implement that yet.)
>
> The only way to do this at the moment in Postgres is to put the
> set-returning function into the SELECT target list:
>
> select id, datelist(date_start, date_end) from payment;
>
> which will work fine if datelist() is implemented as a SQL function,
> and not so fine if it's implemented in plpgsql. You can work around
> this by wrapping the plpgsql function in a SQL function (ick).
> I posted an example in another thread a day or so ago.
>
> regards, tom lane
>
This wraping works! Thanks Tom.
create function datelist_sql(date, date) returns setof date as'
select * from datelist($1,$2)
'language 'sql' strict immutable;
Then simply do this query
"select datelist('8/1/2005', '8/6/2005')"
otherwise with plpgsql function I got
ERROR: set-valued function called in context that cannot accept a set
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2005-08-09 02:39:07 | plpythonu and return void |
Previous Message | Alvaro Herrera | 2005-08-08 22:37:51 | Re: [GENERAL] postgresql Secure Mode |