On Wed, 27 Jun 2001, Zeugswetter Andreas SB wrote:
> > > select name1, name2 from foo() where name1 > 10;
> > >
> > > What returns foo()? ...the pointer to HeapTuple or something like this or
> > > pointer to some temp table?
> > Pointer to heaptuple. We can get to tupdesc for that tuple by looking up
> > its prorettype.
>
> But the question is how you get the next row. Do you return a null terminated
> array of heaptuples ?
>
> Imho to allow this to be efficient, there would need to be some mechanism,
> that would allow the function to return the result in small blocks (e.g. each row)
> (similar to a heap access), else you would be limited to return
> values, that fit into memory, or fit on temporary disk storage, and do
> work that might not even be required, because the client only fetches the
> first row.
I haven't thought of this yet, but its a good point. I think I'll find out
what's involved when I write code for it. :)
-alex