diff options
| author | Simon Riggs <simon@2ndQuadrant.com> | 2011-02-01 08:49:58 +0000 | 
|---|---|---|
| committer | Simon Riggs <simon@2ndQuadrant.com> | 2011-02-01 08:49:58 +0000 | 
| commit | d6c1dc176a422ed19d698bb8ff9ed7b38c04a320 (patch) | |
| tree | 938726c58ef089e8dd55fade1d6fcd81406fc770 /src | |
| parent | 9a012852897fec73ed1459486d6e8426c674d9ad (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.c | 2 | ||||
| -rw-r--r-- | src/include/utils/errcodes.h | 1 | ||||
| -rw-r--r-- | src/pl/plpgsql/src/plerrcodes.h | 4 | 
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  }, | 
