diff options
Diffstat (limited to 'src/backend/tcop/utility.c')
-rw-r--r-- | src/backend/tcop/utility.c | 24 |
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 |