diff --git a/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContext.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContext.scala index 6786984590b1..bcdcd5093ae8 100644 --- a/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContext.scala +++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContext.scala @@ -798,7 +798,7 @@ sealed class TransactionBoundQueryContext(val transactionalContext: Transactiona transactionalContext.statement.readOperations().schemaStateGetOrCreate(key, javaCreator) } - override def addIndexRule(descriptor: IndexDescriptor): IdempotentResult[CapableIndexReference] = { + override def addIndexRule(descriptor: IndexDescriptor): IdempotentResult[IndexReference] = { val kernelDescriptor = cypherToKernelSchema(descriptor) try { IdempotentResult(transactionalContext.kernelTransaction.schemaWrite().indexCreate(kernelDescriptor)) diff --git a/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/QueryContextAdaptation.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/QueryContextAdaptation.scala index a6b465823331..f10114761348 100644 --- a/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/QueryContextAdaptation.scala +++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/QueryContextAdaptation.scala @@ -27,8 +27,8 @@ import org.neo4j.cypher.internal.runtime._ import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection import org.neo4j.cypher.internal.v3_4.logical.plans.QualifiedName import org.neo4j.graphdb.{Node, Path, PropertyContainer} +import org.neo4j.internal.kernel.api.IndexReference import org.neo4j.internal.kernel.api.helpers.RelationshipSelectionCursor -import org.neo4j.internal.kernel.api.{CapableIndexReference, IndexReference} import org.neo4j.kernel.impl.api.store.RelationshipIterator import org.neo4j.kernel.impl.core.EmbeddedProxySPI import org.neo4j.values.AnyValue @@ -181,7 +181,7 @@ trait QueryContextAdaptation { override def nodeCountByCountStore(labelId: Int): Long = ??? - override def addIndexRule(descriptor: IndexDescriptor): IdempotentResult[CapableIndexReference] = ??? + override def addIndexRule(descriptor: IndexDescriptor): IdempotentResult[IndexReference] = ??? override def getOptRelTypeId(relType: String): Option[Int] = ??? diff --git a/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/UpdateCountingQueryContextTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/UpdateCountingQueryContextTest.scala index bef96e1dcd03..1e4fe6a5e12a 100644 --- a/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/UpdateCountingQueryContextTest.scala +++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/UpdateCountingQueryContextTest.scala @@ -27,7 +27,7 @@ import org.neo4j.cypher.internal.planner.v3_4.spi.{IdempotentResult, IndexDescri import org.neo4j.cypher.internal.runtime.{Operations, QueryContext, QueryStatistics} import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite import org.neo4j.graphdb.{Node, Relationship} -import org.neo4j.internal.kernel.api.CapableIndexReference +import org.neo4j.internal.kernel.api.IndexReference import org.neo4j.values.storable.Values import org.neo4j.values.virtual.{NodeValue, RelationshipValue} @@ -68,7 +68,7 @@ class UpdateCountingQueryContextTest extends CypherFunSuite { when( inner.createRelationshipPropertyExistenceConstraint(anyInt(), anyInt()) ).thenReturn(true) when(inner.addIndexRule(any())) - .thenReturn(IdempotentResult(mock[CapableIndexReference])) + .thenReturn(IdempotentResult(mock[IndexReference])) var context: UpdateCountingQueryContext = null diff --git a/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/QueryContext.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/QueryContext.scala index 6acde1ab0392..6a084cc6f76e 100644 --- a/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/QueryContext.scala +++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/QueryContext.scala @@ -95,7 +95,7 @@ trait QueryContext extends TokenContext { def getOrCreatePropertyKeyId(propertyKey: String): Int - def addIndexRule(descriptor: IndexDescriptor): IdempotentResult[CapableIndexReference] + def addIndexRule(descriptor: IndexDescriptor): IdempotentResult[IndexReference] def dropIndexRule(descriptor: IndexDescriptor) diff --git a/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/SchemaWrite.java b/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/SchemaWrite.java index 4d11a54e0e25..def1b81dc258 100644 --- a/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/SchemaWrite.java +++ b/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/SchemaWrite.java @@ -35,7 +35,7 @@ public interface SchemaWrite * @param descriptor description of the index * @return the newly created index */ - CapableIndexReference indexCreate( LabelSchemaDescriptor descriptor ) throws SchemaKernelException; + IndexReference indexCreate( LabelSchemaDescriptor descriptor ) throws SchemaKernelException; /** * Drop the given index diff --git a/community/kernel-api/src/test/java/org/neo4j/internal/kernel/api/SchemaReadWriteTestBase.java b/community/kernel-api/src/test/java/org/neo4j/internal/kernel/api/SchemaReadWriteTestBase.java index 7849acea7a8d..86da714bedf6 100644 --- a/community/kernel-api/src/test/java/org/neo4j/internal/kernel/api/SchemaReadWriteTestBase.java +++ b/community/kernel-api/src/test/java/org/neo4j/internal/kernel/api/SchemaReadWriteTestBase.java @@ -81,7 +81,7 @@ public void setUp() throws Exception @Test public void shouldCreateIndex() throws Exception { - CapableIndexReference index; + IndexReference index; try ( Transaction transaction = session.beginTransaction() ) { index = transaction.schemaWrite().indexCreate( labelDescriptor( label, prop1 ) ); @@ -98,7 +98,7 @@ public void shouldCreateIndex() throws Exception @Test public void shouldDropIndex() throws Exception { - CapableIndexReference index; + IndexReference index; try ( Transaction transaction = session.beginTransaction() ) { index = transaction.schemaWrite().indexCreate( labelDescriptor( label, prop1 ) ); @@ -161,7 +161,7 @@ public void shouldSeeIndexFromTransaction() throws Exception @Test public void shouldNotSeeDroppedIndexFromTransaction() throws Exception { - CapableIndexReference index; + IndexReference index; try ( Transaction transaction = session.beginTransaction() ) { index = diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/DefaultCapableIndexReference.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/DefaultCapableIndexReference.java index d1bc3df8f58e..6eb7addb950c 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/DefaultCapableIndexReference.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/DefaultCapableIndexReference.java @@ -24,6 +24,7 @@ import org.neo4j.internal.kernel.api.CapableIndexReference; import org.neo4j.internal.kernel.api.IndexCapability; import org.neo4j.internal.kernel.api.IndexOrder; +import org.neo4j.internal.kernel.api.IndexReference; import org.neo4j.internal.kernel.api.IndexValueCapability; import org.neo4j.internal.kernel.api.schema.LabelSchemaDescriptor; import org.neo4j.kernel.api.index.IndexProvider; @@ -97,14 +98,14 @@ public boolean equals( Object o ) { return true; } - if ( o == null || getClass() != o.getClass() ) + if ( o == null || !(o instanceof IndexReference) ) { return false; } - DefaultCapableIndexReference that = (DefaultCapableIndexReference) o; + IndexReference that = (IndexReference) o; - return label == that.label && unique == that.unique && Arrays.equals( properties, that.properties ); + return label == that.label() && unique == that.isUnique() && Arrays.equals( properties, that.properties() ); } @Override diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/DefaultIndexReference.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/DefaultIndexReference.java index da14eb3d4133..7c201fbe1e1e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/DefaultIndexReference.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/DefaultIndexReference.java @@ -80,13 +80,13 @@ public boolean equals( Object o ) { return true; } - if ( o == null || getClass() != o.getClass() ) + if ( o == null || !( o instanceof IndexReference ) ) { return false; } - DefaultIndexReference that = (DefaultIndexReference) o; - return unique == that.unique && label == that.label && Arrays.equals( properties, that.properties ); + IndexReference that = (IndexReference) o; + return unique == that.isUnique() && label == that.label() && Arrays.equals( properties, that.properties() ); } @Override @@ -97,4 +97,11 @@ public int hashCode() result = 31 * result + Arrays.hashCode( properties ); return result; } + + @Override + public String toString() + { + return String.format( "Index(%d:%s)", label, Arrays.toString( properties ) ); + } + } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/Operations.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/Operations.java index ce359ae4ff37..447f13eb0f6b 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/Operations.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/Operations.java @@ -80,6 +80,7 @@ import org.neo4j.kernel.api.txstate.TransactionState; import org.neo4j.kernel.impl.api.KernelTransactionImplementation; import org.neo4j.kernel.impl.api.state.ConstraintIndexCreator; +import org.neo4j.kernel.impl.api.store.DefaultIndexReference; import org.neo4j.kernel.impl.constraints.ConstraintSemantics; import org.neo4j.kernel.impl.index.IndexEntityType; import org.neo4j.kernel.impl.locking.ResourceTypes; @@ -92,12 +93,12 @@ import static java.lang.Math.max; import static java.lang.Math.min; import static org.neo4j.internal.kernel.api.exceptions.schema.ConstraintValidationException.Phase.VALIDATION; -import static org.neo4j.internal.kernel.api.exceptions.schema.SchemaKernelException.OperationContext.CONSTRAINT_CREATION; +import static org.neo4j.internal.kernel.api.exceptions.schema.SchemaKernelException.OperationContext + .CONSTRAINT_CREATION; import static org.neo4j.internal.kernel.api.schema.SchemaDescriptorPredicates.hasProperty; import static org.neo4j.kernel.api.StatementConstants.NO_SUCH_NODE; import static org.neo4j.kernel.api.StatementConstants.NO_SUCH_PROPERTY_KEY; import static org.neo4j.kernel.api.schema.index.SchemaIndexDescriptor.Type.UNIQUE; -import static org.neo4j.kernel.impl.api.store.DefaultCapableIndexReference.fromDescriptor; import static org.neo4j.kernel.impl.locking.ResourceTypes.INDEX_ENTRY; import static org.neo4j.kernel.impl.locking.ResourceTypes.indexEntryResourceId; import static org.neo4j.kernel.impl.newapi.IndexTxStateUpdater.LabelChangeType.ADDED_LABEL; @@ -781,7 +782,7 @@ public DefaultPropertyCursor propertyCursor() } @Override - public CapableIndexReference indexCreate( LabelSchemaDescriptor descriptor ) throws SchemaKernelException + public IndexReference indexCreate( LabelSchemaDescriptor descriptor ) throws SchemaKernelException { acquireExclusiveLabelLock( descriptor.getLabelId() ); ktx.assertOpen(); @@ -790,7 +791,7 @@ public CapableIndexReference indexCreate( LabelSchemaDescriptor descriptor ) thr SchemaIndexDescriptor indexDescriptor = SchemaIndexDescriptorFactory.forSchema( descriptor ); ktx.txState().indexRuleDoAdd( indexDescriptor ); - return fromDescriptor( indexDescriptor ); + return DefaultIndexReference.fromDescriptor( indexDescriptor ); } @Override diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexIT.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexIT.java index 21515a883700..b927c667a78b 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexIT.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexIT.java @@ -35,7 +35,6 @@ import org.neo4j.graphdb.schema.IndexDefinition; import org.neo4j.helpers.collection.Iterables; import org.neo4j.helpers.collection.Iterators; -import org.neo4j.internal.kernel.api.CapableIndexReference; import org.neo4j.internal.kernel.api.IndexReference; import org.neo4j.internal.kernel.api.SchemaRead; import org.neo4j.internal.kernel.api.SchemaWrite; @@ -130,7 +129,7 @@ public void addIndexRuleInATransaction() throws Exception SchemaWrite schemaWriteOperations = schemaWriteInNewTransaction(); // WHEN - CapableIndexReference expectedRule = schemaWriteOperations.indexCreate( descriptor ); + IndexReference expectedRule = schemaWriteOperations.indexCreate( descriptor ); commit(); // THEN @@ -145,7 +144,7 @@ public void committedAndTransactionalIndexRulesShouldBeMerged() throws Exception { // GIVEN SchemaWrite schemaWriteOperations = schemaWriteInNewTransaction(); - CapableIndexReference existingRule = schemaWriteOperations.indexCreate( descriptor ); + IndexReference existingRule = schemaWriteOperations.indexCreate( descriptor ); commit(); // WHEN @@ -204,7 +203,7 @@ public void shouldBeAbleToRemoveAConstraintIndexWithoutOwner() throws Exception public void shouldDisallowDroppingIndexThatDoesNotExist() throws Exception { // given - CapableIndexReference index; + IndexReference index; { SchemaWrite statement = schemaWriteInNewTransaction(); index = statement.indexCreate( descriptor ); @@ -307,7 +306,7 @@ public void shouldListAll() throws Exception { // given SchemaWrite schemaWrite = schemaWriteInNewTransaction(); - CapableIndexReference index1 = schemaWrite.indexCreate( descriptor ); + IndexReference index1 = schemaWrite.indexCreate( descriptor ); IndexReference index2 = fromDescriptor( ((IndexBackedConstraintDescriptor) schemaWrite.uniquePropertyConstraintCreate( descriptor2 )).ownedIndexDescriptor()) ; commit(); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/KernelIT.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/KernelIT.java index e4120565c691..9e6328208d90 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/KernelIT.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/KernelIT.java @@ -37,7 +37,7 @@ import org.neo4j.graphdb.Node; import org.neo4j.graphdb.Transaction; import org.neo4j.graphdb.TransactionFailureException; -import org.neo4j.internal.kernel.api.CapableIndexReference; +import org.neo4j.internal.kernel.api.IndexReference; import org.neo4j.internal.kernel.api.SchemaWrite; import org.neo4j.internal.kernel.api.TokenWrite; import org.neo4j.internal.kernel.api.exceptions.EntityNotFoundException; @@ -47,7 +47,6 @@ import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.exceptions.Status; -import org.neo4j.kernel.api.security.AnonymousContext; import org.neo4j.kernel.impl.transaction.log.TransactionIdStore; import org.neo4j.kernel.internal.GraphDatabaseAPI; import org.neo4j.storageengine.api.NodeItem; @@ -519,7 +518,7 @@ public void schemaStateShouldBeEvictedOnIndexComingOnline() throws Exception public void schemaStateShouldBeEvictedOnIndexDropped() throws Exception { // GIVEN - CapableIndexReference idx = createIndex( newTransaction( AUTH_DISABLED ) ); + IndexReference idx = createIndex( newTransaction( AUTH_DISABLED ) ); commit(); try ( Transaction tx = db.beginTx() ) @@ -638,7 +637,7 @@ private static long lastCommittedTxId( GraphDatabaseAPI db ) return txIdStore.getLastCommittedTransactionId(); } - private CapableIndexReference createIndex( KernelTransaction transaction ) + private IndexReference createIndex( KernelTransaction transaction ) throws SchemaKernelException, InvalidTransactionTypeKernelException { TokenWrite tokenWrite = transaction.tokenWrite(); diff --git a/enterprise/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/UniquenessConstraintCreationIT.java b/enterprise/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/UniquenessConstraintCreationIT.java index ee3d905da0d6..ec2a47daaf31 100644 --- a/enterprise/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/UniquenessConstraintCreationIT.java +++ b/enterprise/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/UniquenessConstraintCreationIT.java @@ -62,7 +62,7 @@ import static org.neo4j.graphdb.Label.label; import static org.neo4j.helpers.collection.Iterators.asSet; import static org.neo4j.helpers.collection.Iterators.single; -import static org.neo4j.kernel.impl.api.store.DefaultCapableIndexReference.fromDescriptor; +import static org.neo4j.kernel.impl.api.store.DefaultIndexReference.fromDescriptor; public class UniquenessConstraintCreationIT extends AbstractConstraintCreationIT