summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Riggs <simon@2ndQuadrant.com>2011-02-01 08:49:58 +0000
committerSimon Riggs <simon@2ndQuadrant.com>2011-02-01 08:49:58 +0000
commitd6c1dc176a422ed19d698bb8ff9ed7b38c04a320 (patch)
tree938726c58ef089e8dd55fade1d6fcd81406fc770 /src
parent9a012852897fec73ed1459486d6e8426c674d9ad (diff)
Create new errcode for recovery conflict caused by db drop on master.
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
Diffstat (limited to 'src')
-rw-r--r--src/backend/tcop/postgres.c2
-rw-r--r--src/include/utils/errcodes.h1
-rw-r--r--src/pl/plpgsql/src/plerrcodes.h4
3 files changed, 6 insertions, 1 deletions
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 08369df2d14..34705750398 100644
--- 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 f7be2611f86..be13920530a 100644
--- 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 99008be9bf2..dcaf006f3e8 100644
--- a/src/pl/plpgsql/src/plerrcodes.h
+++ b/src/pl/plpgsql/src/plerrcodes.h
@@ -736,6 +736,10 @@
},
{
+ "database_dropped", ERRCODE_DATABASE_DROPPED
+},
+
+{
"io_error", ERRCODE_IO_ERROR
},