diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2018-02-16 20:57:06 -0500 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2018-03-16 13:18:06 -0400 |
commit | ec87efde8dbc670467468860c5d577dc805dae5e (patch) | |
tree | 96991de8befe65fd9a1ddb007703646b5972cedb /src/backend/access/transam | |
parent | 04700b685f31508036456bea4d92533e5ceee9d6 (diff) |
Simplify parse representation of savepoint commands
Instead of embedding the savepoint name in a list and then requiring
complex code to unpack it, just add another struct field to store it
directly.
Reviewed-by: Alvaro Herrera <alvherre@alvh.no-ip.org>
Diffstat (limited to 'src/backend/access/transam')
-rw-r--r-- | src/backend/access/transam/xact.c | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 49d4decc710..d16102a1e4d 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -3908,13 +3908,11 @@ DefineSavepoint(const char *name) * As above, we don't actually do anything here except change blockState. */ void -ReleaseSavepoint(List *options) +ReleaseSavepoint(const char *name) { TransactionState s = CurrentTransactionState; TransactionState target, xact; - ListCell *cell; - char *name = NULL; /* * Workers synchronize transaction state at the beginning of each parallel @@ -3978,16 +3976,6 @@ ReleaseSavepoint(List *options) break; } - foreach(cell, options) - { - DefElem *elem = lfirst(cell); - - if (strcmp(elem->defname, "savepoint_name") == 0) - name = strVal(elem->arg); - } - - Assert(PointerIsValid(name)); - for (target = s; PointerIsValid(target); target = target->parent) { if (PointerIsValid(target->name) && strcmp(target->name, name) == 0) @@ -4029,13 +4017,11 @@ ReleaseSavepoint(List *options) * As above, we don't actually do anything here except change blockState. */ void -RollbackToSavepoint(List *options) +RollbackToSavepoint(const char *name) { TransactionState s = CurrentTransactionState; TransactionState target, xact; - ListCell *cell; - char *name = NULL; /* * Workers synchronize transaction state at the beginning of each parallel @@ -4099,16 +4085,6 @@ RollbackToSavepoint(List *options) break; } - foreach(cell, options) - { - DefElem *elem = lfirst(cell); - - if (strcmp(elem->defname, "savepoint_name") == 0) - name = strVal(elem->arg); - } - - Assert(PointerIsValid(name)); - for (target = s; PointerIsValid(target); target = target->parent) { if (PointerIsValid(target->name) && strcmp(target->name, name) == 0) |