| From: | Ian Harding <iharding(at)pakrat(dot)com> |
|---|---|
| To: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Re: pl/pgsql Limits |
| Date: | 2001-01-20 05:04:12 |
| Message-ID: | 3A691C4C.BA1C60EC@pakrat.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
Tom Lane wrote:
> Jan Wieck <janwieck(at)Yahoo(dot)com> writes:
> >> As it is known that any funtion, written in pl/pgsql, can only
> >> retrun one tuple. I am just wondering it were true as well for function
> >> written in C language. I need to write few function that will retrun
> >> mulitiple rows satsifying a certain set of conditions.
>
> > We plan to tackle the problem for v7.2.
>
> It is possible for a C function to return a set (ie, multiple values
> returned over successive calls) as of 7.1; it's even documented, see
> src/backend/utils/fmgr/README. And you can return a tuple if you know
> how (this part is not documented, but you can crib it from the
> SQL-function support in backend/executor/functions.c).
>
> The real problem is that the rest of the system doesn't let you *do*
> anything very useful with either set-valued or tuple-valued functions.
> This is what we need to address in future releases. Ideally I think
> a function returning sets and/or tuples should be treated as a table
> source, so that you'd write ... FROM function(args) AS alias, ...
>
> regards, tom lane
OK, here's my brute force stupid hack to work around it. I create a temporary
table, call my procedure, which inserts records into my temporary table, then
I select from it. The table had to exist when I created the procedure, but
that's OK, I just delete it afterwards.
When I disconnect with psql, the temp table goes away. Of course I could just
drop it, but I am curious... With AOLServer, which uses connection pooling,
might my connection stay open all day and other transactions have visibility
of my temporary table? I don't quite get that part.
Ian
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Kovacs Zoltan Sandor | 2001-01-20 12:19:24 | Re: pl/pgSQL & transaction |
| Previous Message | Forest Wilkinson | 2001-01-20 04:54:21 | unreferenced primary keys: garbage collection |