aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils')
-rw-r--r--src/backend/utils/resowner/README4
-rw-r--r--src/backend/utils/resowner/resowner.c20
2 files changed, 3 insertions, 21 deletions
diff --git a/src/backend/utils/resowner/README b/src/backend/utils/resowner/README
index e7b9ddfa59a..2998f6bb362 100644
--- a/src/backend/utils/resowner/README
+++ b/src/backend/utils/resowner/README
@@ -80,7 +80,3 @@ CurrentResourceOwner must point to the same resource owner that was current
when the buffer, lock, or cache reference was acquired. It would be possible
to relax this restriction given additional bookkeeping effort, but at present
there seems no need.
-
-Code that transiently changes CurrentResourceOwner should generally use a
-PG_TRY construct to ensure that the previous value of CurrentResourceOwner
-is restored if control is lost during an error exit.
diff --git a/src/backend/utils/resowner/resowner.c b/src/backend/utils/resowner/resowner.c
index bd19fad77e9..4c35ccf65eb 100644
--- a/src/backend/utils/resowner/resowner.c
+++ b/src/backend/utils/resowner/resowner.c
@@ -473,21 +473,8 @@ ResourceOwnerRelease(ResourceOwner owner,
bool isCommit,
bool isTopLevel)
{
- /* Rather than PG_TRY at every level of recursion, set it up once */
- ResourceOwner save;
-
- save = CurrentResourceOwner;
- PG_TRY();
- {
- ResourceOwnerReleaseInternal(owner, phase, isCommit, isTopLevel);
- }
- PG_CATCH();
- {
- CurrentResourceOwner = save;
- PG_RE_THROW();
- }
- PG_END_TRY();
- CurrentResourceOwner = save;
+ /* There's not currently any setup needed before recursing */
+ ResourceOwnerReleaseInternal(owner, phase, isCommit, isTopLevel);
}
static void
@@ -507,8 +494,7 @@ ResourceOwnerReleaseInternal(ResourceOwner owner,
/*
* Make CurrentResourceOwner point to me, so that ReleaseBuffer etc don't
- * get confused. We needn't PG_TRY here because the outermost level will
- * fix it on error abort.
+ * get confused.
*/
save = CurrentResourceOwner;
CurrentResourceOwner = owner;