Skip to content

Commit

Permalink
[NOID] apoc.schema.* Fix unique constraint column
Browse files Browse the repository at this point in the history
  • Loading branch information
gem-neo4j committed Jun 5, 2023
1 parent d9578a9 commit 47f05d8
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
6 changes: 5 additions & 1 deletion core/src/main/java/apoc/schema/Schemas.java
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,12 @@ public List<AssertSchemaResult> assertConstraints(Map<String, List<Object>> 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();
Expand Down
7 changes: 7 additions & 0 deletions core/src/main/java/apoc/util/Util.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -1230,4 +1231,10 @@ public static int indexOf(List<Object> list, Object value) {
(i) -> Util.valueEquals(i, value)
);
}

public static boolean constraintIsUnique(ConstraintType type) {
return type == ConstraintType.NODE_KEY ||
type == ConstraintType.UNIQUENESS;
}

}

0 comments on commit 47f05d8

Please sign in to comment.