From 81148856b0310e7b0e578508ace44c0aefcbee07 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Sat, 17 Feb 2018 20:29:27 -0500 Subject: [PATCH] Improve savepoint error messages Include the savepoint name in the error message and rephrase it a bit to match common style. Reviewed-by: Alvaro Herrera --- src/backend/access/transam/xact.c | 12 ++++++------ src/test/regress/expected/transactions.out | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index d16102a1e4..499a3c6e16 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -3934,7 +3934,7 @@ ReleaseSavepoint(const char *name) case TBLOCK_INPROGRESS: ereport(ERROR, (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), - errmsg("no such savepoint"))); + errmsg("savepoint \"%s\" does not exist", name))); break; case TBLOCK_IMPLICIT_INPROGRESS: @@ -3985,13 +3985,13 @@ ReleaseSavepoint(const char *name) if (!PointerIsValid(target)) ereport(ERROR, (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), - errmsg("no such savepoint"))); + errmsg("savepoint \"%s\" does not exist", name))); /* disallow crossing savepoint level boundaries */ if (target->savepointLevel != s->savepointLevel) ereport(ERROR, (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), - errmsg("no such savepoint"))); + errmsg("savepoint \"%s\" does not exist within current savepoint level", name))); /* * Mark "commit pending" all subtransactions up to the target @@ -4045,7 +4045,7 @@ RollbackToSavepoint(const char *name) case TBLOCK_ABORT: ereport(ERROR, (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), - errmsg("no such savepoint"))); + errmsg("savepoint \"%s\" does not exist", name))); break; case TBLOCK_IMPLICIT_INPROGRESS: @@ -4094,13 +4094,13 @@ RollbackToSavepoint(const char *name) if (!PointerIsValid(target)) ereport(ERROR, (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), - errmsg("no such savepoint"))); + errmsg("savepoint \"%s\" does not exist", name))); /* disallow crossing savepoint level boundaries */ if (target->savepointLevel != s->savepointLevel) ereport(ERROR, (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), - errmsg("no such savepoint"))); + errmsg("savepoint \"%s\" does not exist within current savepoint level", name))); /* * Mark "abort pending" all subtransactions up to the target diff --git a/src/test/regress/expected/transactions.out b/src/test/regress/expected/transactions.out index 829a38dd5b..69e176c525 100644 --- a/src/test/regress/expected/transactions.out +++ b/src/test/regress/expected/transactions.out @@ -749,5 +749,5 @@ begin; select 1/0; ERROR: division by zero rollback to X; -ERROR: no such savepoint +ERROR: savepoint "x" does not exist -- DO NOT ADD ANYTHING HERE. -- 2.40.0