Joe Conway <mail@joeconway.com> writes:
> Any guidance on the preferred fix?
We cannot fix this by changing ExecScanSubPlan as you suggest.
That would amount to saying that all plans have to be run to completion,
which destroys LIMIT to name just one unpleasant consequence.
There is a mechanism available for functions to arrange to get cleanup
callbacks when a containing plan is shut down early --- see
RegisterExprContextCallback and ShutdownExprContext. It looks like this
is not used by the existing SRF support, but I suspect it should be.
[ scratches head ... ] Right at the moment I don't see where
ShutdownExprContext gets called during a ReScan operation. I'm quite
sure it once was ... there may be another bug here ...
regards, tom lane