prevent_multistatement_savepoints.v1.patch
application/octet-stream
Filename: prevent_multistatement_savepoints.v1.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
Series: patch v1
| File | + | − |
|---|---|---|
| src/backend/tcop/utility.c | 3 | 3 |
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 775477c6cf..ef309c7ff6 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -472,7 +472,7 @@ standard_ProcessUtility(PlannedStmt *pstmt,
ListCell *cell;
char *name = NULL;
- RequireTransactionChain(isTopLevel, "SAVEPOINT");
+ RequireTransactionChain(!IsTransactionBlock(), "SAVEPOINT");
foreach(cell, stmt->options)
{
@@ -489,12 +489,12 @@ standard_ProcessUtility(PlannedStmt *pstmt,
break;
case TRANS_STMT_RELEASE:
- RequireTransactionChain(isTopLevel, "RELEASE SAVEPOINT");
+ RequireTransactionChain(!IsTransactionBlock(), "RELEASE SAVEPOINT");
ReleaseSavepoint(stmt->options);
break;
case TRANS_STMT_ROLLBACK_TO:
- RequireTransactionChain(isTopLevel, "ROLLBACK TO SAVEPOINT");
+ RequireTransactionChain(!IsTransactionBlock(), "ROLLBACK TO SAVEPOINT");
RollbackToSavepoint(stmt->options);
/*