pgsql: Run a portal's cleanup hook immediately when pushing it to DONE

Started by Tom Laneover 15 years ago1 messagescomitters
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

Run a portal's cleanup hook immediately when pushing it to DONE state.

This works around the problem noted by Yamamoto Takashi in bug #5906,
that there were code paths whereby we could reach AtCleanup_Portals
with a portal's cleanup hook still unexecuted. The changes I made
a few days ago were intended to prevent that from happening, and
I think that on balance it's still a good thing to avoid, so I don't
want to remove the Assert in AtCleanup_Portals. Hence do this instead.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/6252c4f9e201f619e5eebda12fa867acd4e4200e

Modified Files
--------------
src/backend/tcop/pquery.c | 2 +-
src/backend/utils/mmgr/portalmem.c | 26 ++++++++++++++++++++++++++
src/include/utils/portal.h | 1 +
3 files changed, 28 insertions(+), 1 deletions(-)