summaryrefslogtreecommitdiff
path: root/src/backend/tcop/utility.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/tcop/utility.c')
-rw-r--r--src/backend/tcop/utility.c24
1 files changed, 4 insertions, 20 deletions
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 81881be1d51..ed55521a0cd 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -469,34 +469,18 @@ standard_ProcessUtility(PlannedStmt *pstmt,
break;
case TRANS_STMT_SAVEPOINT:
- {
- ListCell *cell;
- char *name = NULL;
-
- RequireTransactionBlock(isTopLevel, "SAVEPOINT");
-
- foreach(cell, stmt->options)
- {
- DefElem *elem = lfirst(cell);
-
- if (strcmp(elem->defname, "savepoint_name") == 0)
- name = strVal(elem->arg);
- }
-
- Assert(PointerIsValid(name));
-
- DefineSavepoint(name);
- }
+ RequireTransactionBlock(isTopLevel, "SAVEPOINT");
+ DefineSavepoint(stmt->savepoint_name);
break;
case TRANS_STMT_RELEASE:
RequireTransactionBlock(isTopLevel, "RELEASE SAVEPOINT");
- ReleaseSavepoint(stmt->options);
+ ReleaseSavepoint(stmt->savepoint_name);
break;
case TRANS_STMT_ROLLBACK_TO:
RequireTransactionBlock(isTopLevel, "ROLLBACK TO SAVEPOINT");
- RollbackToSavepoint(stmt->options);
+ RollbackToSavepoint(stmt->savepoint_name);
/*
* CommitTransactionCommand is in charge of