]> granicus.if.org Git - postgresql/commitdiff
Improve INSERT .. ON CONFLICT error message.
authorRobert Haas <rhaas@postgresql.org>
Tue, 13 Oct 2015 19:33:07 +0000 (15:33 -0400)
committerRobert Haas <rhaas@postgresql.org>
Tue, 13 Oct 2015 19:33:07 +0000 (15:33 -0400)
Peter Geoghegan, reviewed by me.

src/backend/executor/execIndexing.c
src/test/regress/output/constraints.source

index f42bd8f1fb889e2435a2555383732cb3f55b63b4..72993297079df96f91e3e6266b3c4b81d7383bf8 100644 (file)
@@ -535,8 +535,8 @@ ExecCheckIndexConstraints(TupleTableSlot *slot,
 
                if (!indexRelation->rd_index->indimmediate)
                        ereport(ERROR,
-                                       (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                                        errmsg("ON CONFLICT does not support deferred unique constraints/exclusion constraints as arbiters"),
+                                       (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
+                                        errmsg("ON CONFLICT does not support deferrable unique constraints/exclusion constraints as arbiters"),
                                         errtableconstraint(heapRelation,
                                                                   RelationGetRelationName(indexRelation))));
 
index 1c4a044052793273c91cf4eb2281073542bb23e7..e6d317438044d82c1d11cb0ca9bcf8ff62e85342 100644 (file)
@@ -643,7 +643,7 @@ INSERT INTO deferred_excl VALUES(1); -- fail
 ERROR:  conflicting key value violates exclusion constraint "deferred_excl_con"
 DETAIL:  Key (f1)=(1) conflicts with existing key (f1)=(1).
 INSERT INTO deferred_excl VALUES(1) ON CONFLICT ON CONSTRAINT deferred_excl_con DO NOTHING; -- fail
-ERROR:  ON CONFLICT does not support deferred unique constraints/exclusion constraints as arbiters
+ERROR:  ON CONFLICT does not support deferrable unique constraints/exclusion constraints as arbiters
 BEGIN;
 INSERT INTO deferred_excl VALUES(2); -- no fail here
 COMMIT; -- should fail here