Neil Conway <neilc(at)samurai(dot)com> writes:
> if (funcTupdesc)
> + {
> tupledesc_match(node->tupdesc, funcTupdesc);
> + FreeTupleDesc(funcTupdesc);
> + }
> }
I find this part of the patch to be a seriously bad idea.
nodeFunctionscan has no right to assume that the function has returned
an expendable tupdesc; indeed, I would think that the other case is
more nearly what's expected by the API for SRFs. We certainly daren't
backpatch such a change.
A safer fix would be to try to make the tupdesc be in the new
multi_call_ctx when it's being created by the funcapi.c code.
regards, tom lane