Re: pl/pgsql Limits
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Jan Wieck <janwieck@Yahoo.com>
Cc: Najm Hashmi <najm@mondo-live.com>, "pgsql-sql@postgresql.org" <pgsql-sql@postgresql.org>
Date: 2001-01-13T17:31:21Z
Lists: pgsql-sql
Jan Wieck <janwieck@Yahoo.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