Here is a small patch that changes the error message
duplicate key value violates unique constraint "%s"
into
duplicate key value violates primary key "%s"
when the constraint is in fact a primary key.
Comments?
PS: Yes, this would need a handful of regression test updates if
accepted.
Index: src/backend/access/nbtree/nbtinsert.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/access/nbtree/nbtinsert.c,v
retrieving revision 1.176
diff -u -3 -p -r1.176 nbtinsert.c
--- src/backend/access/nbtree/nbtinsert.c 2 Jan 2010 16:57:35 -0000 1.176
+++ src/backend/access/nbtree/nbtinsert.c 20 Jan 2010 22:56:55 -0000
@@ -381,8 +381,11 @@ _bt_check_unique(Relation rel, IndexTupl
values, isnull);
ereport(ERROR,
(errcode(ERRCODE_UNIQUE_VIOLATION),
- errmsg("duplicate key value violates unique constraint \"%s\"",
- RelationGetRelationName(rel)),
+ (rel->rd_index->indisprimary
+ ? errmsg("duplicate key value violates primary key \"%s\"",
+ RelationGetRelationName(rel))
+ : errmsg("duplicate key value violates unique constraint \"%s\"",
+ RelationGetRelationName(rel))),
errdetail("Key %s already exists.",
BuildIndexValueDescription(rel,
values, isnull))));
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers