diff --git a/core/src/main/java/apoc/schema/Schemas.java b/core/src/main/java/apoc/schema/Schemas.java index f02fc461d9..1c1909944e 100644 --- a/core/src/main/java/apoc/schema/Schemas.java +++ b/core/src/main/java/apoc/schema/Schemas.java @@ -136,8 +136,12 @@ public List assertConstraints(Map> cons Schema schema = tx.schema(); for (ConstraintDefinition definition : schema.getConstraints()) { + ConstraintType constraintType = definition.getConstraintType(); String label = definition.isConstraintType(ConstraintType.RELATIONSHIP_PROPERTY_EXISTENCE) ? definition.getRelationshipType().name() : definition.getLabel().name(); - AssertSchemaResult info = new AssertSchemaResult(label, Iterables.asList(definition.getPropertyKeys())).unique(); + AssertSchemaResult info = new AssertSchemaResult(label, Iterables.asList(definition.getPropertyKeys())); + if (Util.constraintIsUnique(constraintType)) { + info = info.unique(); + } if (!checkIfConstraintExists(label, constraints, info)) { if (dropExisting) { definition.drop(); diff --git a/core/src/main/java/apoc/util/Util.java b/core/src/main/java/apoc/util/Util.java index f945c90cff..685ef2bf60 100644 --- a/core/src/main/java/apoc/util/Util.java +++ b/core/src/main/java/apoc/util/Util.java @@ -44,6 +44,7 @@ import org.neo4j.graphdb.ResourceIterator; import org.neo4j.graphdb.Transaction; import org.neo4j.graphdb.TransactionTerminatedException; +import org.neo4j.graphdb.schema.ConstraintType; import org.neo4j.internal.helpers.collection.Iterators; import org.neo4j.internal.helpers.collection.Pair; import org.neo4j.internal.kernel.api.procs.ProcedureCallContext; @@ -1230,4 +1231,10 @@ public static int indexOf(List list, Object value) { (i) -> Util.valueEquals(i, value) ); } + + public static boolean constraintIsUnique(ConstraintType type) { + return type == ConstraintType.NODE_KEY || + type == ConstraintType.UNIQUENESS; + } + }