>>> That doesn't sound right to me.  I'd have thought something in class 40.
>>
>> What about:
>>
>> 40004 CONFLICT WITH RECOVERY conflict_with_recovery
> 
> We should respect the following convention, from errcodes.h:
> 
>  * The convention is that new error codes defined by PostgreSQL in a
>  * class defined by the standard have a subclass value that begins
>  * with 'P'. In addition, error codes defined by PostgreSQL clients
>  * (such as ecpg) have a class value that begins with 'Y'.
> 
> And don't forget there are three places where the new error code would
> need to be added.
> 
> Otherwise, +1.

Ok. Here is the patch for this. I use 40P02, instead of 40004.
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp
*** a/doc/src/sgml/errcodes.sgml
--- b/doc/src/sgml/errcodes.sgml
***************
*** 985,990 ****
--- 985,995 ----
  <entry>deadlock_detected</entry>
  </row>
  
+ <row>
+ <entry><literal>40P02</literal></entry>
+ <entry>CONFLICT WITH RECOVERY</entry>
+ <entry>conflict_with_recovery</entry>
+ </row>
  
  <row>
  <entry spanname="span13"><emphasis role="bold">Class 42 &mdash; Syntax Error or Access Rule Violation</></entry>
*** a/src/backend/tcop/postgres.c
--- b/src/backend/tcop/postgres.c
***************
*** 2909,2915 **** ProcessInterrupts(void)
  					 errdetail_recovery_conflict()));
  		else if (RecoveryConflictPending)
  			ereport(FATAL,
! 					(errcode(ERRCODE_ADMIN_SHUTDOWN),
  			  errmsg("terminating connection due to conflict with recovery"),
  					 errdetail_recovery_conflict()));
  		else
--- 2909,2915 ----
  					 errdetail_recovery_conflict()));
  		else if (RecoveryConflictPending)
  			ereport(FATAL,
! 					(errcode(ERRCODE_CONFLICT_WITH_RECOVERY),
  			  errmsg("terminating connection due to conflict with recovery"),
  					 errdetail_recovery_conflict()));
  		else
*** a/src/include/utils/errcodes.h
--- b/src/include/utils/errcodes.h
***************
*** 243,248 ****
--- 243,249 ----
  #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_CONFLICT_WITH_RECOVERY	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')
*** a/src/pl/plpgsql/src/plerrcodes.h
--- b/src/pl/plpgsql/src/plerrcodes.h
***************
*** 484,489 ****
--- 484,493 ----
  },
  
  {
+ 	"conflict_with_recovery", ERRCODE_CONFLICT_WITH_RECOVERY
+ },
+ 
+ {
  	"syntax_error_or_access_rule_violation", ERRCODE_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION
  },
  
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to