> So my idea would be to have the SQL function behavior choose to return values
> either via tuplestore or via value-per-call, depending on the user
> setting "generator" or "lazy".
> Done this way, the user could also choose for the function to be lazy or to
> use a tuplestore whatever the language in which it's written.
The problem is not the general PostgreSQL executor, but whatever body
of code executes PL/pgsql functions (and other PL languages). It does
not, as I understand it, support freezing execution of the function
midway through and picking up again later. I haven't looked at the
code, but based on previous experience, that could turn out to be a
pretty major refactoring. I suspect it would be worthwhile and quite
welcome to many users - but I doubt very much that it would be easy.
...Robert