From b8dd19af50950d4933da7ad60f93388e9d0eb851 Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Tue, 13 Oct 2015 15:33:07 -0400 Subject: [PATCH] Improve INSERT .. ON CONFLICT error message. Peter Geoghegan, reviewed by me. --- src/backend/executor/execIndexing.c | 4 ++-- src/test/regress/output/constraints.source | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/executor/execIndexing.c b/src/backend/executor/execIndexing.c index f42bd8f1fb..7299329707 100644 --- a/src/backend/executor/execIndexing.c +++ b/src/backend/executor/execIndexing.c @@ -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)))); diff --git a/src/test/regress/output/constraints.source b/src/test/regress/output/constraints.source index 1c4a044052..e6d3174380 100644 --- a/src/test/regress/output/constraints.source +++ b/src/test/regress/output/constraints.source @@ -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