Search in sources :

Example 36 with SchemaRead

use of org.neo4j.internal.kernel.api.SchemaRead in project neo4j by neo4j.

the class SchemaReadWriteTestBase method shouldCreateRelationshipPropertyExistenceConstraint.

@Test
void shouldCreateRelationshipPropertyExistenceConstraint() throws Exception {
    ConstraintDescriptor constraint;
    try (KernelTransaction transaction = beginTransaction()) {
        constraint = transaction.schemaWrite().relationshipPropertyExistenceConstraintCreate(forRelType(type, prop1), "constraint name");
        transaction.commit();
    }
    try (KernelTransaction transaction = beginTransaction()) {
        SchemaRead schemaRead = transaction.schemaRead();
        assertTrue(schemaRead.constraintExists(constraint));
        assertThat(asList(schemaRead.constraintsGetForRelationshipType(type))).isEqualTo(singletonList(constraint));
        assertThat(asList(schemaRead.snapshot().constraintsGetForRelationshipType(type))).isEqualTo(singletonList(constraint));
    }
}
Also used : KernelTransaction(org.neo4j.kernel.api.KernelTransaction) SchemaRead(org.neo4j.internal.kernel.api.SchemaRead) ConstraintDescriptor(org.neo4j.internal.schema.ConstraintDescriptor) Test(org.junit.jupiter.api.Test)

Example 37 with SchemaRead

use of org.neo4j.internal.kernel.api.SchemaRead in project neo4j by neo4j.

the class SchemaReadWriteTestBase method shouldSeeNodePropertyExistenceConstraintFromTransaction.

@Test
void shouldSeeNodePropertyExistenceConstraintFromTransaction() throws Exception {
    ConstraintDescriptor existing;
    try (KernelTransaction transaction = beginTransaction()) {
        existing = transaction.schemaWrite().nodePropertyExistenceConstraintCreate(forLabel(label, prop1), "existing constraint");
        transaction.commit();
    }
    try (KernelTransaction transaction = beginTransaction()) {
        SchemaReadCore before = transaction.schemaRead().snapshot();
        ConstraintDescriptor newConstraint = transaction.schemaWrite().nodePropertyExistenceConstraintCreate(forLabel(label, prop2), "new constraint");
        SchemaRead schemaRead = transaction.schemaRead();
        assertTrue(schemaRead.constraintExists(existing));
        assertTrue(schemaRead.constraintExists(newConstraint));
        assertThat(asList(schemaRead.constraintsGetForLabel(label))).contains(existing, newConstraint);
        assertThat(asList(schemaRead.snapshot().constraintsGetForLabel(label))).contains(existing, newConstraint);
        assertThat(asList(before.constraintsGetForLabel(label))).contains(existing, newConstraint);
    }
}
Also used : KernelTransaction(org.neo4j.kernel.api.KernelTransaction) SchemaRead(org.neo4j.internal.kernel.api.SchemaRead) ConstraintDescriptor(org.neo4j.internal.schema.ConstraintDescriptor) SchemaReadCore(org.neo4j.internal.kernel.api.SchemaReadCore) Test(org.junit.jupiter.api.Test)

Example 38 with SchemaRead

use of org.neo4j.internal.kernel.api.SchemaRead in project neo4j by neo4j.

the class SchemaReadWriteTestBase method shouldCreateIndex.

@Test
void shouldCreateIndex() throws Exception {
    IndexDescriptor index;
    try (KernelTransaction transaction = beginTransaction()) {
        index = transaction.schemaWrite().indexCreate(forLabel(label, prop1), "my index");
        transaction.commit();
    }
    try (KernelTransaction transaction = beginTransaction()) {
        SchemaRead schemaRead = transaction.schemaRead();
        assertThat(single(schemaRead.index(SchemaDescriptor.forLabel(label, prop1)))).isEqualTo(index);
    }
}
Also used : KernelTransaction(org.neo4j.kernel.api.KernelTransaction) SchemaRead(org.neo4j.internal.kernel.api.SchemaRead) IndexDescriptor(org.neo4j.internal.schema.IndexDescriptor) Test(org.junit.jupiter.api.Test)

Example 39 with SchemaRead

use of org.neo4j.internal.kernel.api.SchemaRead in project neo4j by neo4j.

the class SchemaReadWriteTestBase method shouldCreateNodeKeyConstraint.

@Test
void shouldCreateNodeKeyConstraint() throws Exception {
    ConstraintDescriptor constraint;
    try (KernelTransaction transaction = beginTransaction()) {
        constraint = transaction.schemaWrite().nodeKeyConstraintCreate(uniqueForSchema(forLabel(label, prop1)));
        transaction.commit();
    }
    try (KernelTransaction transaction = beginTransaction()) {
        SchemaRead schemaRead = transaction.schemaRead();
        assertTrue(schemaRead.constraintExists(constraint));
        assertThat(asList(schemaRead.constraintsGetForLabel(label))).isEqualTo(singletonList(constraint));
        assertThat(asList(schemaRead.snapshot().constraintsGetForLabel(label))).isEqualTo(singletonList(constraint));
    }
}
Also used : KernelTransaction(org.neo4j.kernel.api.KernelTransaction) SchemaRead(org.neo4j.internal.kernel.api.SchemaRead) ConstraintDescriptor(org.neo4j.internal.schema.ConstraintDescriptor) Test(org.junit.jupiter.api.Test)

Example 40 with SchemaRead

use of org.neo4j.internal.kernel.api.SchemaRead in project neo4j by neo4j.

the class GraphDbStructureGuide method showIndices.

private static void showIndices(DbStructureVisitor visitor, KernelTransaction ktx, TokenNameLookup nameLookup) throws IndexNotFoundKernelException {
    SchemaRead schemaRead = ktx.schemaRead();
    for (IndexDescriptor reference : loop(IndexDescriptor.sortByType(schemaRead.indexesGetAll()))) {
        String userDescription = reference.schema().userDescription(nameLookup);
        double uniqueValuesPercentage = schemaRead.indexUniqueValuesSelectivity(reference);
        long size = schemaRead.indexSize(reference);
        visitor.visitIndex(reference, userDescription, uniqueValuesPercentage, size);
    }
}
Also used : SchemaRead(org.neo4j.internal.kernel.api.SchemaRead) IndexDescriptor(org.neo4j.internal.schema.IndexDescriptor)

Aggregations

SchemaRead (org.neo4j.internal.kernel.api.SchemaRead)52 KernelTransaction (org.neo4j.kernel.api.KernelTransaction)36 Test (org.junit.jupiter.api.Test)28 IndexDescriptor (org.neo4j.internal.schema.IndexDescriptor)26 ConstraintDescriptor (org.neo4j.internal.schema.ConstraintDescriptor)22 TokenRead (org.neo4j.internal.kernel.api.TokenRead)12 SchemaReadCore (org.neo4j.internal.kernel.api.SchemaReadCore)9 IndexNotFoundKernelException (org.neo4j.internal.kernel.api.exceptions.schema.IndexNotFoundKernelException)8 ArrayList (java.util.ArrayList)7 Read (org.neo4j.internal.kernel.api.Read)5 HashMap (java.util.HashMap)4 BeforeEach (org.junit.jupiter.api.BeforeEach)4 Arrays (java.util.Arrays)3 Iterator (java.util.Iterator)3 List (java.util.List)3 Map (java.util.Map)3 EntityType (org.neo4j.common.EntityType)3 KernelException (org.neo4j.exceptions.KernelException)3 Transaction (org.neo4j.graphdb.Transaction)3 Iterators (org.neo4j.internal.helpers.collection.Iterators)3