Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com> writes:
> While looking for other places allocating stuff in ExecutorState (for
> the UPDATE case) and leaving it there, I found two more cases:
> 1) copy_plpgsql_datums
> 2) make_expanded_record_from_tupdesc
> make_expanded_record_from_exprecord
> All of this is calls from plpgsql_exec_trigger.
Can you show a test case in which this happens? I added some
instrumentation and verified at least within our regression tests,
copy_plpgsql_datums' CurrentMemoryContext is always plpgsql's
"SPI Proc" context, so I do not see how there can be a query-lifespan
leak there, nor how your 0003 would fix it if there is.
regards, tom lane