git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 9a01285)
Create new errcode for recovery conflict caused by db drop on master.
Tue, 1 Feb 2011 08:49:58 +0000 (08:49 +0000)
Tue, 1 Feb 2011 08:49:58 +0000 (08:49 +0000)
Previously reported as ERRCODE_ADMIN_SHUTDOWN, this case is now
reported as ERRCODE_DATABASE_DROPPED. No message text change.
Unlikely to happen on most servers, so low impact change to allow
session poolers to correctly handle this situation.

Tatsuo Ishii and Simon Riggs


diff --git a/doc/src/sgml/errcodes.sgml b/doc/src/sgml/errcodes.sgml
index b5962f98cd0e9beb32500d36ab8ad7309e99c126..c052670777318cd9c5dc03913d6667f3ed271766 100644 (file)
--- a/doc/src/sgml/errcodes.sgml
+++ b/doc/src/sgml/errcodes.sgml
@@ -1369,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 08369df2d14407ba4507e8175310f5cba83afd37..347057503981ff390afaf0a844c38ae9b9b852b7 100644 (file)
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -2908,7 +2908,7 @@ ProcessInterrupts(void)
errdetail_recovery_conflict()));
else if (RecoveryConflictPending)
ereport(FATAL,
- (errcode(ERRCODE_ADMIN_SHUTDOWN),
+ (errcode(ERRCODE_DATABASE_DROPPED),
errmsg("terminating connection due to conflict with recovery"),
errdetail_recovery_conflict()));
else
diff --git a/src/include/utils/errcodes.h b/src/include/utils/errcodes.h
index f7be2611f863e929309b0b43a5f0b8e4ec45e691..be13920530aa3facec5983a4821a77b09b3cb497 100644 (file)
--- a/src/include/utils/errcodes.h
+++ b/src/include/utils/errcodes.h
@@ -332,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 99008be9bf273fd03ef06a7d4b2686e672cdca03..dcaf006f3e87d55c3cd642c523f30f05562c61c2 100644 (file)
--- a/src/pl/plpgsql/src/plerrcodes.h
+++ b/src/pl/plpgsql/src/plerrcodes.h
@@ -735,6 +735,10 @@
"cannot_connect_now", ERRCODE_CANNOT_CONNECT_NOW
},
+{
+ "database_dropped", ERRCODE_DATABASE_DROPPED
+},
+
{
"io_error", ERRCODE_IO_ERROR
},
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /