]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Fix bug in temporary file management with subtransactions. A cursor opened
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 3 Dec 2009 11:04:03 +0000 (11:04 +0000)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 3 Dec 2009 11:04:03 +0000 (11:04 +0000)
commitb9c44be65ffa9b26c72e548292ac81c3f17cf7f7
tree05501b95bd18e14c3252928273e4f9724c04c0d7
parent532ae854ccc5527906dccdcbaf7ca5d5c533d8f7
Fix bug in temporary file management with subtransactions. A cursor opened
in a subtransaction stays open even if the subtransaction is aborted, so
any temporary files related to it must stay alive as well. With the patch,
we use ResourceOwners to track open temporary files and don't automatically
close them at subtransaction end (though in the normal case temporary files
are registered with the subtransaction resource owner and will therefore be
closed).

At end of top transaction, we still check that there's no temporary files
marked as close-at-end-of-transaction open, but that's now just a debugging
cross-check as the resource owner cleanup should've closed them already.
src/backend/storage/file/fd.c
src/backend/utils/resowner/resowner.c
src/include/utils/resowner.h