Hi,
On 2019-04-06 14:43:26 -0400, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
> > On 2019-04-06 14:34:34 -0400, Tom Lane wrote:
> >> Why should this code need to free anything? That'd be the responsibility
> >> of the slot code, no?
>
> > Well, not really. If a slot doesn't hold heap tuples internally,
> > ExecFetchSlotHeapTuple() will return a fresh heap tuple (but signal so
> > by setting *should_free = true if not NULL).
>
> Ah, got it: ignoring should_free is indeed a potential issue here.
I've pushed a revised version of my earlier patch adding a memory
context that's reset after each tuple.
Greetings,
Andres Freund