diff options
-rw-r--r-- | doc/src/sgml/errcodes.sgml | 5 | ||||
-rw-r--r-- | src/backend/tcop/postgres.c | 4 | ||||
-rw-r--r-- | src/include/utils/errcodes.h | 1 | ||||
-rw-r--r-- | src/pl/plpgsql/src/plerrcodes.h | 4 |
4 files changed, 13 insertions, 1 deletions
diff --git a/doc/src/sgml/errcodes.sgml b/doc/src/sgml/errcodes.sgml index 3a1baf58831..d19de947b4c 100644 --- a/doc/src/sgml/errcodes.sgml +++ b/doc/src/sgml/errcodes.sgml @@ -985,6 +985,11 @@ <entry>deadlock_detected</entry> </row> +<row> +<entry><literal>40P02</literal></entry> +<entry>DATABASE DROPPED</entry> +<entry>database_dropped</entry> +</row> <row> <entry spanname="span13"><emphasis role="bold">Class 42 — Syntax Error or Access Rule Violation</></entry> diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 535926a937a..f6ccbb95243 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -2912,9 +2912,11 @@ ProcessInterrupts(void) } else if (RecoveryConflictPending) { + /* Currently there is only one non-retryable recovery conflict */ + Assert(RecoveryConflictReason == PROCSIG_RECOVERY_CONFLICT_DATABASE); pgstat_report_recovery_conflict(RecoveryConflictReason); ereport(FATAL, - (errcode(ERRCODE_ADMIN_SHUTDOWN), + (errcode(ERRCODE_T_R_DATABASE_DROPPED), errmsg("terminating connection due to conflict with recovery"), errdetail_recovery_conflict())); } diff --git a/src/include/utils/errcodes.h b/src/include/utils/errcodes.h index 7f2d589f140..8a9a8d460a5 100644 --- a/src/include/utils/errcodes.h +++ b/src/include/utils/errcodes.h @@ -243,6 +243,7 @@ #define ERRCODE_T_R_SERIALIZATION_FAILURE MAKE_SQLSTATE('4','0', '0','0','1') #define ERRCODE_T_R_STATEMENT_COMPLETION_UNKNOWN MAKE_SQLSTATE('4','0', '0','0','3') #define ERRCODE_T_R_DEADLOCK_DETECTED MAKE_SQLSTATE('4','0', 'P','0','1') +#define ERRCODE_T_R_DATABASE_DROPPED MAKE_SQLSTATE('4','0', 'P','0','2') /* Class 42 - Syntax Error or Access Rule Violation */ #define ERRCODE_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION MAKE_SQLSTATE('4','2', '0','0','0') diff --git a/src/pl/plpgsql/src/plerrcodes.h b/src/pl/plpgsql/src/plerrcodes.h index 812446ffdf3..50f57413790 100644 --- a/src/pl/plpgsql/src/plerrcodes.h +++ b/src/pl/plpgsql/src/plerrcodes.h @@ -484,6 +484,10 @@ }, { + "database_dropped", ERRCODE_T_R_DATABASE_DROPPED +}, + +{ "syntax_error_or_access_rule_violation", ERRCODE_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION }, |