From 56b21b7ae38bc1efb701e7ebfd208e2e194e7998 Mon Sep 17 00:00:00 2001
From: Simon Riggs <simon@2ndQuadrant.com>
Date: Tue, 1 Feb 2011 08:44:01 +0000
Subject: [PATCH] Re-classify ERRCODE_DATABASE_DROPPED to 57P04

---
 doc/src/sgml/errcodes.sgml      | 11 ++++++-----
 src/backend/tcop/postgres.c     |  2 +-
 src/include/utils/errcodes.h    |  2 +-
 src/pl/plpgsql/src/plerrcodes.h |  8 ++++----
 4 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/doc/src/sgml/errcodes.sgml b/doc/src/sgml/errcodes.sgml
index d19de947b4c..c05b4caf268 100644
--- a/doc/src/sgml/errcodes.sgml
+++ b/doc/src/sgml/errcodes.sgml
@@ -985,11 +985,6 @@
 <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 &mdash; Syntax Error or Access Rule Violation</></entry>
@@ -1374,6 +1369,12 @@
 <entry>cannot_connect_now</entry>
 </row>
 
+<row>
+<entry><literal>57P04</literal></entry>
+<entry>DATABASE DROPPED</entry>
+<entry>database_dropped</entry>
+</row>
+
 
 <row>
 <entry spanname="span13"><emphasis role="bold">Class 58 &mdash; System Error (errors external to <productname>PostgreSQL</> itself)</></entry>
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index f6ccbb95243..98b56d6582c 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -2916,7 +2916,7 @@ ProcessInterrupts(void)
 			Assert(RecoveryConflictReason == PROCSIG_RECOVERY_CONFLICT_DATABASE);
 			pgstat_report_recovery_conflict(RecoveryConflictReason);
 			ereport(FATAL,
-					(errcode(ERRCODE_T_R_DATABASE_DROPPED),
+					(errcode(ERRCODE_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 8a9a8d460a5..2bcaf037f73 100644
--- a/src/include/utils/errcodes.h
+++ b/src/include/utils/errcodes.h
@@ -243,7 +243,6 @@
 #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')
@@ -333,6 +332,7 @@
 #define ERRCODE_ADMIN_SHUTDOWN				MAKE_SQLSTATE('5','7', 'P','0','1')
 #define ERRCODE_CRASH_SHUTDOWN				MAKE_SQLSTATE('5','7', 'P','0','2')
 #define ERRCODE_CANNOT_CONNECT_NOW			MAKE_SQLSTATE('5','7', 'P','0','3')
+#define ERRCODE_DATABASE_DROPPED			MAKE_SQLSTATE('5','7', 'P','0','4')
 
 /* Class 58 - System Error (class borrowed from DB2) */
 /* (we define this as errors external to PostgreSQL itself) */
diff --git a/src/pl/plpgsql/src/plerrcodes.h b/src/pl/plpgsql/src/plerrcodes.h
index 50f57413790..e18f3b05a3d 100644
--- a/src/pl/plpgsql/src/plerrcodes.h
+++ b/src/pl/plpgsql/src/plerrcodes.h
@@ -483,10 +483,6 @@
 	"deadlock_detected", ERRCODE_T_R_DEADLOCK_DETECTED
 },
 
-{
-	"database_dropped", ERRCODE_T_R_DATABASE_DROPPED
-},
-
 {
 	"syntax_error_or_access_rule_violation", ERRCODE_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION
 },
@@ -739,6 +735,10 @@
 	"cannot_connect_now", ERRCODE_CANNOT_CONNECT_NOW
 },
 
+{
+	"database_dropped", ERRCODE_DATABASE_DROPPED
+},
+
 {
 	"io_error", ERRCODE_IO_ERROR
 },
-- 
GitLab