aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands')
-rw-r--r--src/backend/commands/async.c9
-rw-r--r--src/backend/commands/copy.c4
-rw-r--r--src/backend/commands/event_trigger.c10
-rw-r--r--src/backend/commands/extension.c6
-rw-r--r--src/backend/commands/subscriptioncmds.c13
-rw-r--r--src/backend/commands/trigger.c4
-rw-r--r--src/backend/commands/vacuum.c6
7 files changed, 9 insertions, 43 deletions
diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c
index d0649d2e3ef..a3209d076b3 100644
--- a/src/backend/commands/async.c
+++ b/src/backend/commands/async.c
@@ -2028,22 +2028,15 @@ asyncQueueReadAllNotifications(void)
snapshot);
} while (!reachedStop);
}
- PG_CATCH();
+ PG_FINALLY();
{
/* Update shared state */
LWLockAcquire(AsyncQueueLock, LW_SHARED);
QUEUE_BACKEND_POS(MyBackendId) = pos;
LWLockRelease(AsyncQueueLock);
-
- PG_RE_THROW();
}
PG_END_TRY();
- /* Update shared state */
- LWLockAcquire(AsyncQueueLock, LW_SHARED);
- QUEUE_BACKEND_POS(MyBackendId) = pos;
- LWLockRelease(AsyncQueueLock);
-
/* Done with snapshot */
UnregisterSnapshot(snapshot);
}
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 3aeef30b281..e17d8c760f7 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -1916,13 +1916,11 @@ BeginCopyTo(ParseState *pstate,
{
cstate->copy_file = AllocateFile(cstate->filename, PG_BINARY_W);
}
- PG_CATCH();
+ PG_FINALLY();
{
umask(oumask);
- PG_RE_THROW();
}
PG_END_TRY();
- umask(oumask);
if (cstate->copy_file == NULL)
{
/* copy errno because ereport subfunctions might change it */
diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index f7ee9838f7f..0301ae1ddd9 100644
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -934,13 +934,11 @@ EventTriggerSQLDrop(Node *parsetree)
{
EventTriggerInvoke(runlist, &trigdata);
}
- PG_CATCH();
+ PG_FINALLY();
{
currentEventTriggerState->in_sql_drop = false;
- PG_RE_THROW();
}
PG_END_TRY();
- currentEventTriggerState->in_sql_drop = false;
/* Cleanup. */
list_free(runlist);
@@ -1007,17 +1005,13 @@ EventTriggerTableRewrite(Node *parsetree, Oid tableOid, int reason)
{
EventTriggerInvoke(runlist, &trigdata);
}
- PG_CATCH();
+ PG_FINALLY();
{
currentEventTriggerState->table_rewrite_oid = InvalidOid;
currentEventTriggerState->table_rewrite_reason = 0;
- PG_RE_THROW();
}
PG_END_TRY();
- currentEventTriggerState->table_rewrite_oid = InvalidOid;
- currentEventTriggerState->table_rewrite_reason = 0;
-
/* Cleanup. */
list_free(runlist);
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c
index f7202cc9e7d..a04b0c9e579 100644
--- a/src/backend/commands/extension.c
+++ b/src/backend/commands/extension.c
@@ -942,17 +942,13 @@ execute_extension_script(Oid extensionOid, ExtensionControlFile *control,
execute_sql_string(c_sql);
}
- PG_CATCH();
+ PG_FINALLY();
{
creating_extension = false;
CurrentExtensionObject = InvalidOid;
- PG_RE_THROW();
}
PG_END_TRY();
- creating_extension = false;
- CurrentExtensionObject = InvalidOid;
-
/*
* Restore the GUC variables we set above.
*/
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index 2e67a5889e5..14191957665 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -493,16 +493,11 @@ CreateSubscription(CreateSubscriptionStmt *stmt, bool isTopLevel)
slotname)));
}
}
- PG_CATCH();
+ PG_FINALLY();
{
- /* Close the connection in case of failure. */
walrcv_disconnect(wrconn);
- PG_RE_THROW();
}
PG_END_TRY();
-
- /* And we are done with the remote side. */
- walrcv_disconnect(wrconn);
}
else
ereport(WARNING,
@@ -1023,16 +1018,12 @@ DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel)
walrcv_clear_result(res);
}
- PG_CATCH();
+ PG_FINALLY();
{
- /* Close the connection in case of failure */
walrcv_disconnect(wrconn);
- PG_RE_THROW();
}
PG_END_TRY();
- walrcv_disconnect(wrconn);
-
pfree(cmd.data);
table_close(rel, NoLock);
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 7ba859d446d..0b84de59437 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -2431,13 +2431,11 @@ ExecCallTriggerFunc(TriggerData *trigdata,
{
result = FunctionCallInvoke(fcinfo);
}
- PG_CATCH();
+ PG_FINALLY();
{
MyTriggerDepth--;
- PG_RE_THROW();
}
PG_END_TRY();
- MyTriggerDepth--;
pgstat_end_function_usage(&fcusage, true);
diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c
index 4b67b40b285..da1da234000 100644
--- a/src/backend/commands/vacuum.c
+++ b/src/backend/commands/vacuum.c
@@ -430,17 +430,13 @@ vacuum(List *relations, VacuumParams *params,
}
}
}
- PG_CATCH();
+ PG_FINALLY();
{
in_vacuum = false;
VacuumCostActive = false;
- PG_RE_THROW();
}
PG_END_TRY();
- in_vacuum = false;
- VacuumCostActive = false;
-
/*
* Finish up processing.
*/