From 0941a8901baac69d3b1376b5671bc8991c8c33fc Mon Sep 17 00:00:00 2001
From: Michael Meskes <meskes@postgresql.org>
Date: Fri, 17 Mar 2006 15:46:13 +0000
Subject: [PATCH] Fixed bug 2330: Wrong error code in case of a duplicate key

---
 src/interfaces/ecpg/ChangeLog       | 4 ++++
 src/interfaces/ecpg/ecpglib/error.c | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 0bc5d78fa7b..2042647ef82 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -1993,6 +1993,10 @@ Tu Feb  7 18:48:14 CET 2006
 
 	- Bit field notation belongs to a variable not a variable list.
 	- Output of line number only done by one function.
+
+Fri, 17 Mar 2006 16:38:19 +0100
+
+	- Fixed bug 2330: Wrong error code in case of a duplicate key
 	- Set ecpg library version to 5.2.
 	- Set ecpg version to 4.2.1.
 
diff --git a/src/interfaces/ecpg/ecpglib/error.c b/src/interfaces/ecpg/ecpglib/error.c
index 582a2cb3575..df131ffa693 100644
--- a/src/interfaces/ecpg/ecpglib/error.c
+++ b/src/interfaces/ecpg/ecpglib/error.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/error.c,v 1.11 2005/10/15 02:49:47 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/error.c,v 1.12 2006/03/17 15:46:13 meskes Exp $ */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "postgres_fe.h"
@@ -186,7 +186,7 @@ ECPGraise_backend(int line, PGresult *result, PGconn *conn, int compat)
 	/* assign SQLCODE for backward compatibility */
 	if (strncmp(sqlca->sqlstate, "23505", sizeof(sqlca->sqlstate)) == 0)
 		sqlca->sqlcode = INFORMIX_MODE(compat) ? ECPG_INFORMIX_DUPLICATE_KEY : ECPG_DUPLICATE_KEY;
-	if (strncmp(sqlca->sqlstate, "21000", sizeof(sqlca->sqlstate)) == 0)
+	else if (strncmp(sqlca->sqlstate, "21000", sizeof(sqlca->sqlstate)) == 0)
 		sqlca->sqlcode = INFORMIX_MODE(compat) ? ECPG_INFORMIX_SUBSELECT_NOT_ONE : ECPG_SUBSELECT_NOT_ONE;
 	else
 		sqlca->sqlcode = ECPG_PGSQL;
-- 
GitLab