From: Peter Eisentraut Date: Sun, 18 Feb 2018 01:29:27 +0000 (-0500) Subject: Improve savepoint error messages X-Git-Tag: REL_11_BETA1~583 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=81148856b0310e7b0e578508ace44c0aefcbee07;p=postgresql 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 --- 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.