From e0871d61841718fe55e8b23a897fff0db8cf2150 Mon Sep 17 00:00:00 2001 From: Ragnar Mellbin Date: Fri, 10 Mar 2017 13:35:00 +0100 Subject: [PATCH] Change `IndexMap` to use LabelSchemaDescriptor --- .../full/FullCheckIntegrationTest.java | 2 +- .../v3_2/TransactionBoundQueryContext.scala | 1 + .../schema/AlreadyConstrainedException.java | 4 +- .../kernel/api/index/IndexEntryUpdate.java | 18 +-- .../neo4j/kernel/api/index/NodeUpdates.java | 54 +++---- .../schema_new/index/NewIndexDescriptor.java | 6 +- .../kernel/builtinprocs/IndexProcedures.java | 2 +- .../kernel/impl/api/IndexReaderFactory.java | 2 +- .../neo4j/kernel/impl/api/index/IndexMap.java | 20 +-- .../impl/api/index/IndexMapReference.java | 7 +- .../impl/api/index/IndexUpdaterMap.java | 14 +- .../impl/api/index/IndexingService.java | 15 +- .../api/index/MultipleIndexPopulator.java | 11 +- .../kernel/impl/api/store/StorageLayer.java | 13 +- .../internal/BatchInserterImpl.java | 2 +- .../CompositeIndexAccessorCompatibility.java | 17 ++- .../api/index/IndexAccessorCompatibility.java | 34 ++--- .../api/index/IndexEntryUpdateTest.java | 38 ++--- .../IndexProviderCompatibilityTestSuite.java | 1 + .../kernel/api/index/NodeUpdatesTest.java | 8 +- .../NonUniqueIndexAccessorCompatibility.java | 73 +++++---- .../NonUniqueIndexPopulatorCompatibility.java | 8 +- .../UniqueIndexAccessorCompatibility.java | 10 +- .../UniqueIndexPopulatorCompatibility.java | 4 +- .../ResampleIndexProcedureTest.java | 2 +- ...rityValidatingStatementOperationsTest.java | 24 ++- .../BatchingMultipleIndexPopulatorTest.java | 12 +- .../kernel/impl/api/index/IndexCRUDIT.java | 11 +- .../api/index/IndexPopulationJobTest.java | 20 +-- .../impl/api/index/IndexRecoveryIT.java | 6 +- .../impl/api/index/IndexStatisticsTest.java | 4 +- .../impl/api/index/IndexUpdaterMapTest.java | 14 +- .../impl/api/index/IndexingServiceTest.java | 4 +- .../api/index/MultipleIndexPopulatorTest.java | 14 +- .../MultipleIndexPopulatorUpdatesTest.java | 6 +- .../impl/transaction/command/Commands.java | 3 +- ...orkSyncTransactionApplicationStressIT.java | 2 +- .../storeview/NeoStoreIndexStoreViewTest.java | 9 +- .../DbStructureArgumentFormatterTest.java | 2 +- .../batchinsert/internal/BatchInsertTest.java | 8 +- .../index/LuceneSchemaIndexPopulationIT.java | 2 +- .../schema/AccessUniqueDatabaseIndexTest.java | 6 +- .../DatabaseCompositeIndexAccessorTest.java | 6 +- .../schema/DatabaseIndexAccessorTest.java | 6 +- .../api/impl/schema/LuceneSchemaIndexIT.java | 2 +- .../LuceneSchemaIndexPopulatorTest.java | 8 +- ...queDatabaseIndexPopulatingUpdaterTest.java | 140 +++++++++--------- .../NonUniqueDatabaseIndexPopulatorTest.java | 27 ++-- ...queDatabaseIndexPopulatingUpdaterTest.java | 12 +- .../UniqueDatabaseIndexPopulatorTest.java | 51 ++++--- .../index/IndexingServiceIntegrationTest.java | 6 +- .../index/IndexSamplingIntegrationTest.java | 3 +- ...ltiIndexPopulationConcurrentUpdatesIT.java | 16 +- .../org/neo4j/shell/kernel/apps/Schema.java | 3 +- .../java/org/neo4j/kernel/ha/HaCountsIT.java | 2 +- .../impl/IndexSamplingManagerBean.java | 4 +- .../impl/IndexSamplingManagerBeanTest.java | 6 +- 57 files changed, 441 insertions(+), 364 deletions(-) diff --git a/community/consistency-check/src/test/java/org/neo4j/consistency/checking/full/FullCheckIntegrationTest.java b/community/consistency-check/src/test/java/org/neo4j/consistency/checking/full/FullCheckIntegrationTest.java index 1af45d211fbc9..db81952d17086 100644 --- a/community/consistency-check/src/test/java/org/neo4j/consistency/checking/full/FullCheckIntegrationTest.java +++ b/community/consistency-check/src/test/java/org/neo4j/consistency/checking/full/FullCheckIntegrationTest.java @@ -551,7 +551,7 @@ public void shouldReportNodesWithDuplicatePropertyValueInUniqueIndex() throws Ex IndexAccessor accessor = fixture.directStoreAccess().indexes() .getOnlineAccessor( indexRule.getId(), indexRule.getIndexDescriptor(), samplingConfig ); IndexUpdater updater = accessor.newUpdater( IndexUpdateMode.ONLINE ); - updater.process( IndexEntryUpdate.add( 42, indexRule.getIndexDescriptor(), "value" ) ); + updater.process( IndexEntryUpdate.add( 42, indexRule.getIndexDescriptor().schema(), "value" ) ); updater.close(); accessor.close(); } diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_2/TransactionBoundQueryContext.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_2/TransactionBoundQueryContext.scala index 4f57d91d420ab..c5792782e6a5e 100644 --- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_2/TransactionBoundQueryContext.scala +++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_2/TransactionBoundQueryContext.scala @@ -52,6 +52,7 @@ import org.neo4j.kernel.api.exceptions.schema.{AlreadyConstrainedException, Alre import org.neo4j.kernel.api.index.InternalIndexState import org.neo4j.kernel.api.proc.CallableUserAggregationFunction.Aggregator import org.neo4j.kernel.api.proc.{QualifiedName => KernelQualifiedName} +import org.neo4j.kernel.api.schema.NodePropertyDescriptor import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptorFactory import org.neo4j.kernel.api.schema_new.{IndexQuery, SchemaDescriptorFactory} import org.neo4j.kernel.impl.core.NodeManager diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/AlreadyConstrainedException.java b/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/AlreadyConstrainedException.java index d95acc0100f08..50a84c9b9d9a2 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/AlreadyConstrainedException.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/AlreadyConstrainedException.java @@ -23,6 +23,7 @@ import org.neo4j.kernel.api.constraints.NodePropertyConstraint; import org.neo4j.kernel.api.constraints.PropertyConstraint; import org.neo4j.kernel.api.exceptions.Status; +import org.neo4j.kernel.api.schema.NodePropertyDescriptor; import static java.lang.String.format; @@ -57,8 +58,9 @@ private static String constructUserMessage( OperationContext context, TokenNameL case INDEX_CREATION: // is is safe to cast here because we only support indexes on nodes atm NodePropertyConstraint nodePropertyConstraint = (NodePropertyConstraint) constraint; + NodePropertyDescriptor descriptor = nodePropertyConstraint.descriptor(); return messageWithLabelAndPropertyName( tokenNameLookup, INDEX_CONTEXT_FORMAT, - nodePropertyConstraint.descriptor() ); + descriptor ); case CONSTRAINT_CREATION: return ALREADY_CONSTRAINED_MESSAGE_PREFIX + constraint.userDescription( tokenNameLookup ); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/index/IndexEntryUpdate.java b/community/kernel/src/main/java/org/neo4j/kernel/api/index/IndexEntryUpdate.java index cc9f079d303b0..598e1442dd9a6 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/index/IndexEntryUpdate.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/index/IndexEntryUpdate.java @@ -21,8 +21,8 @@ import java.util.Arrays; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.api.schema_new.SchemaUtil; -import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.impl.api.index.UpdateMode; import static java.lang.String.format; @@ -38,9 +38,9 @@ public class IndexEntryUpdate private final UpdateMode updateMode; private final Object[] before; private Object[] values; - private NewIndexDescriptor descriptor; + private LabelSchemaDescriptor descriptor; - private IndexEntryUpdate( long entityId, NewIndexDescriptor descriptor, UpdateMode updateMode, Object... values ) + private IndexEntryUpdate( long entityId, LabelSchemaDescriptor descriptor, UpdateMode updateMode, Object... values ) { this.entityId = entityId; this.descriptor = descriptor; @@ -48,7 +48,7 @@ private IndexEntryUpdate( long entityId, NewIndexDescriptor descriptor, UpdateMo this.values = values; this.updateMode = updateMode; } - private IndexEntryUpdate( long entityId, NewIndexDescriptor descriptor, UpdateMode updateMode, Object[] before, + private IndexEntryUpdate( long entityId, LabelSchemaDescriptor descriptor, UpdateMode updateMode, Object[] before, Object[] values ) { this.entityId = entityId; @@ -68,7 +68,7 @@ public UpdateMode updateMode() return updateMode; } - public NewIndexDescriptor descriptor() + public LabelSchemaDescriptor descriptor() { return descriptor; } @@ -129,22 +129,22 @@ public String toString() .userDescription( SchemaUtil.idTokenNameLookup ), Arrays.toString(values) ); } - public static IndexEntryUpdate add( long nodeId, NewIndexDescriptor descriptor, Object... values ) + public static IndexEntryUpdate add( long nodeId, LabelSchemaDescriptor descriptor, Object... values ) { return new IndexEntryUpdate( nodeId, descriptor, UpdateMode.ADDED, values ); } - public static IndexEntryUpdate remove( long nodeId, NewIndexDescriptor descriptor, Object... values ) + public static IndexEntryUpdate remove( long nodeId, LabelSchemaDescriptor descriptor, Object... values ) { return new IndexEntryUpdate( nodeId, descriptor, UpdateMode.REMOVED, values ); } - public static IndexEntryUpdate change( long nodeId, NewIndexDescriptor descriptor, Object before, Object after ) + public static IndexEntryUpdate change( long nodeId, LabelSchemaDescriptor descriptor, Object before, Object after ) { return new IndexEntryUpdate( nodeId, descriptor, UpdateMode.CHANGED, new Object[]{before}, new Object[]{after} ); } - public static IndexEntryUpdate change( long nodeId, NewIndexDescriptor descriptor, Object[] before, Object[] after ) + public static IndexEntryUpdate change( long nodeId, LabelSchemaDescriptor descriptor, Object[] before, Object[] after ) { return new IndexEntryUpdate( nodeId, descriptor, UpdateMode.CHANGED, before, after ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/index/NodeUpdates.java b/community/kernel/src/main/java/org/neo4j/kernel/api/index/NodeUpdates.java index 24544fb0b4fb4..f5899d2a2452d 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/index/NodeUpdates.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/index/NodeUpdates.java @@ -27,7 +27,7 @@ import java.util.Set; import org.neo4j.kernel.api.properties.DefinedProperty; -import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.impl.api.index.UpdateMode; import org.neo4j.kernel.impl.transaction.state.LabelChangeSummary; @@ -133,23 +133,23 @@ public final long getNodeId() return nodeId; } - public Optional forIndex( NewIndexDescriptor index ) + public Optional forIndex( LabelSchemaDescriptor descriptor ) { - if ( index.schema().getPropertyIds().length > 1 ) + if ( descriptor.getPropertyIds().length > 1 ) { - return getMultiPropertyIndexUpdate( index ); + return getMultiPropertyIndexUpdate( descriptor ); } else { - return getSingePropertyIndexUpdate( index ); + return getSingePropertyIndexUpdate( descriptor ); } } - private Optional getMultiPropertyIndexUpdate( NewIndexDescriptor index ) + private Optional getMultiPropertyIndexUpdate( LabelSchemaDescriptor descriptor ) { - int[] propertyKeyIds = index.schema().getPropertyIds(); - boolean labelExistsBefore = binarySearch( labelsBefore, index.schema().getLabelId() ) >= 0; - boolean labelExistsAfter = binarySearch( labelsAfter, index.schema().getLabelId() ) >= 0; + int[] propertyKeyIds = descriptor.getPropertyIds(); + boolean labelExistsBefore = binarySearch( labelsBefore, descriptor.getLabelId() ) >= 0; + boolean labelExistsAfter = binarySearch( labelsAfter, descriptor.getLabelId() ) >= 0; Set added = new HashSet<>(); // index specific properties added to this node Set removed = new HashSet<>(); // index specific properties removed from this node Set changed = new HashSet<>(); // index specific properties changed on this node @@ -197,7 +197,7 @@ else if ( unchangedValue != null ) if ( labelExistsAfter ) { // Added one or more properties and the label exists - return Optional.of( IndexEntryUpdate.add( nodeId, index, after ) ); + return Optional.of( IndexEntryUpdate.add( nodeId, descriptor, after ) ); } } else if ( removed.size() > 0 ) @@ -205,7 +205,7 @@ else if ( removed.size() > 0 ) if ( labelExistsBefore ) { // Removed one or more properties and the label existed - return Optional.of( IndexEntryUpdate.remove( nodeId, index, before ) ); + return Optional.of( IndexEntryUpdate.remove( nodeId, descriptor, before ) ); } } else if ( changed.size() > 0 ) @@ -213,17 +213,17 @@ else if ( changed.size() > 0 ) if ( labelExistsBefore && labelExistsAfter ) { // Changed one or more properties and the label still exists - return Optional.of( IndexEntryUpdate.change( nodeId, index, before, after ) ); + return Optional.of( IndexEntryUpdate.change( nodeId, descriptor, before, after ) ); } else if ( labelExistsAfter ) { // Changed one or more properties and added the label - return Optional.of( IndexEntryUpdate.add( nodeId, index, after ) ); + return Optional.of( IndexEntryUpdate.add( nodeId, descriptor, after ) ); } else if ( labelExistsBefore ) { // Changed one or more properties and removed the label - return Optional.of( IndexEntryUpdate.remove( nodeId, index, before ) ); + return Optional.of( IndexEntryUpdate.remove( nodeId, descriptor, before ) ); } } else if ( unchanged.size() >= 0 ) @@ -231,26 +231,26 @@ else if ( unchanged.size() >= 0 ) if ( !labelExistsBefore && labelExistsAfter ) { // Node has the right properties and the label was added - return Optional.of( IndexEntryUpdate.add( nodeId, index, after ) ); + return Optional.of( IndexEntryUpdate.add( nodeId, descriptor, after ) ); } else if ( labelExistsBefore && !labelExistsAfter ) { // Node has the right property and the label was removed - return Optional.of( IndexEntryUpdate.remove( nodeId, index, before ) ); + return Optional.of( IndexEntryUpdate.remove( nodeId, descriptor, before ) ); } } } return Optional.empty(); } - private Optional getSingePropertyIndexUpdate( NewIndexDescriptor index ) + private Optional getSingePropertyIndexUpdate( LabelSchemaDescriptor descriptor ) { - int propertyKeyId = index.schema().getPropertyId(); + int propertyKeyId = descriptor.getPropertyId(); Object before = propertiesBefore.get( propertyKeyId ); Object after = propertiesAfter.get( propertyKeyId ); Object unchanged = propertiesUnchanged.get( propertyKeyId ); - boolean labelExistsBefore = binarySearch( labelsBefore, index.schema().getLabelId() ) >= 0; - boolean labelExistsAfter = binarySearch( labelsAfter, index.schema().getLabelId() ) >= 0; + boolean labelExistsBefore = binarySearch( labelsBefore, descriptor.getLabelId() ) >= 0; + boolean labelExistsAfter = binarySearch( labelsAfter, descriptor.getLabelId() ) >= 0; if ( before != null ) { if ( after != null ) @@ -258,17 +258,17 @@ private Optional getSingePropertyIndexUpdate( NewIndexDescript if ( labelExistsBefore && labelExistsAfter ) { // Changed a property and have the label - return Optional.of( IndexEntryUpdate.change( nodeId, index, before, after ) ); + return Optional.of( IndexEntryUpdate.change( nodeId, descriptor, before, after ) ); } else if ( labelExistsAfter ) { // Changed a property and added the label - return Optional.of( IndexEntryUpdate.add( nodeId, index, after ) ); + return Optional.of( IndexEntryUpdate.add( nodeId, descriptor, after ) ); } else if ( labelExistsBefore ) { // Changed a property and removed the label - return Optional.of( IndexEntryUpdate.remove( nodeId, index, before ) ); + return Optional.of( IndexEntryUpdate.remove( nodeId, descriptor, before ) ); } } else @@ -276,7 +276,7 @@ else if ( labelExistsBefore ) if ( labelExistsBefore ) { // Removed a property and node had the label - return Optional.of( IndexEntryUpdate.remove( nodeId, index, before ) ); + return Optional.of( IndexEntryUpdate.remove( nodeId, descriptor, before ) ); } } } @@ -285,7 +285,7 @@ else if ( after != null ) if ( labelExistsAfter ) { // Added a property and node has the label - return Optional.of( IndexEntryUpdate.add( nodeId, index, after ) ); + return Optional.of( IndexEntryUpdate.add( nodeId, descriptor, after ) ); } } else if ( unchanged != null ) @@ -293,12 +293,12 @@ else if ( unchanged != null ) if ( !labelExistsBefore && labelExistsAfter ) { // Node has the right property and the label was added - return Optional.of( IndexEntryUpdate.add( nodeId, index, unchanged ) ); + return Optional.of( IndexEntryUpdate.add( nodeId, descriptor, unchanged ) ); } else if ( labelExistsBefore && !labelExistsAfter ) { // Node has the right property and the label was removed - return Optional.of( IndexEntryUpdate.remove( nodeId, index, unchanged ) ); + return Optional.of( IndexEntryUpdate.remove( nodeId, descriptor, unchanged ) ); } } return Optional.empty(); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/schema_new/index/NewIndexDescriptor.java b/community/kernel/src/main/java/org/neo4j/kernel/api/schema_new/index/NewIndexDescriptor.java index 3e19c402b9027..8de255f24058e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/schema_new/index/NewIndexDescriptor.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/schema_new/index/NewIndexDescriptor.java @@ -125,8 +125,8 @@ public boolean equals( Object o ) { if ( o != null && o instanceof NewIndexDescriptor ) { - NewIndexDescriptor that = (NewIndexDescriptor) o; - return this.schema().equals( that.schema() ); + NewIndexDescriptor that = (NewIndexDescriptor)o; + return this.type() == that.type() && this.schema().equals( that.schema() ); } return false; } @@ -134,7 +134,7 @@ public boolean equals( Object o ) @Override public int hashCode() { - return schema.hashCode(); + return type.hashCode() & schema.hashCode(); } @Override diff --git a/community/kernel/src/main/java/org/neo4j/kernel/builtinprocs/IndexProcedures.java b/community/kernel/src/main/java/org/neo4j/kernel/builtinprocs/IndexProcedures.java index 802d1ec1c830c..5d7550126f732 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/builtinprocs/IndexProcedures.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/builtinprocs/IndexProcedures.java @@ -166,7 +166,7 @@ private InternalIndexState getState( IndexSpecifier indexDescription, NewIndexDe private void triggerSampling( NewIndexDescriptor index ) throws IndexNotFoundKernelException { - indexingService.triggerIndexSampling( index, IndexSamplingMode.TRIGGER_REBUILD_ALL ); + indexingService.triggerIndexSampling( index.schema(), IndexSamplingMode.TRIGGER_REBUILD_ALL ); } @Override diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/IndexReaderFactory.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/IndexReaderFactory.java index 7a965a87a5126..7350504a82846 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/IndexReaderFactory.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/IndexReaderFactory.java @@ -66,7 +66,7 @@ public IndexReader newReader( NewIndexDescriptor descriptor ) throws IndexNotFou @Override public IndexReader newUnCachedReader( NewIndexDescriptor descriptor ) throws IndexNotFoundKernelException { - IndexProxy index = indexingService.getIndexProxy( descriptor ); + IndexProxy index = indexingService.getIndexProxy( descriptor.schema() ); return index.newReader(); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexMap.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexMap.java index 6137e2e5ad7d0..0ba01e35a42cf 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexMap.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexMap.java @@ -24,7 +24,7 @@ import java.util.Map; import java.util.function.BiConsumer; -import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; /** * Bundles various mappings to IndexProxy. Used by IndexingService via IndexMapReference. @@ -35,15 +35,15 @@ public final class IndexMap implements Cloneable { private final Map indexesById; - private final Map indexesByDescriptor; - private final Map indexIdsByDescriptor; + private final Map indexesByDescriptor; + private final Map indexIdsByDescriptor; public IndexMap() { this( new HashMap<>(), new HashMap<>(), new HashMap<>() ); } - private IndexMap( Map indexesById, Map indexesByDescriptor, Map indexIdsByDescriptor ) + private IndexMap( Map indexesById, Map indexesByDescriptor, Map indexIdsByDescriptor ) { this.indexesById = indexesById; this.indexesByDescriptor = indexesByDescriptor; @@ -55,12 +55,12 @@ public IndexProxy getIndexProxy( long indexId ) return indexesById.get( indexId ); } - public IndexProxy getIndexProxy( NewIndexDescriptor descriptor ) + public IndexProxy getIndexProxy( LabelSchemaDescriptor descriptor ) { return indexesByDescriptor.get( descriptor ); } - public long getIndexId( NewIndexDescriptor descriptor ) + public long getIndexId( LabelSchemaDescriptor descriptor ) { return indexIdsByDescriptor.get( descriptor ); } @@ -68,8 +68,8 @@ public long getIndexId( NewIndexDescriptor descriptor ) public void putIndexProxy( long indexId, IndexProxy indexProxy ) { indexesById.put( indexId, indexProxy ); - indexesByDescriptor.put( indexProxy.getDescriptor(), indexProxy ); - indexIdsByDescriptor.put( indexProxy.getDescriptor(), indexId ); + indexesByDescriptor.put( indexProxy.getDescriptor().schema(), indexProxy ); + indexIdsByDescriptor.put( indexProxy.getDescriptor().schema(), indexId ); } public IndexProxy removeIndexProxy( long indexId ) @@ -77,7 +77,7 @@ public IndexProxy removeIndexProxy( long indexId ) IndexProxy removedProxy = indexesById.remove( indexId ); if ( null != removedProxy ) { - indexesByDescriptor.remove( removedProxy.getDescriptor() ); + indexesByDescriptor.remove( removedProxy.getDescriptor().schema() ); } return removedProxy; } @@ -109,7 +109,7 @@ private Map cloneMap( Map map ) return shallowCopy; } - public Iterator descriptors() + public Iterator descriptors() { return indexesByDescriptor.keySet().iterator(); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexMapReference.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexMapReference.java index 9a7ae0933cc9f..0aa1ae4048fe5 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexMapReference.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexMapReference.java @@ -20,6 +20,7 @@ package org.neo4j.kernel.impl.api.index; import org.neo4j.kernel.api.exceptions.index.IndexNotFoundKernelException; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; public class IndexMapReference implements IndexMapSnapshotProvider @@ -42,7 +43,7 @@ public IndexProxy getIndexProxy( long indexId ) throws IndexNotFoundKernelExcept return proxy; } - public IndexProxy getIndexProxy( NewIndexDescriptor descriptor ) throws IndexNotFoundKernelException + public IndexProxy getIndexProxy( LabelSchemaDescriptor descriptor ) throws IndexNotFoundKernelException { IndexProxy proxy = indexMap.getIndexProxy( descriptor ); if ( proxy == null ) @@ -52,7 +53,7 @@ public IndexProxy getIndexProxy( NewIndexDescriptor descriptor ) throws IndexNot return proxy; } - public long getIndexId( NewIndexDescriptor descriptor ) throws IndexNotFoundKernelException + public long getIndexId( LabelSchemaDescriptor descriptor ) throws IndexNotFoundKernelException { IndexProxy proxy = indexMap.getIndexProxy( descriptor ); if ( proxy == null ) @@ -62,7 +63,7 @@ public long getIndexId( NewIndexDescriptor descriptor ) throws IndexNotFoundKern return indexMap.getIndexId( descriptor ); } - public long getOnlineIndexId( NewIndexDescriptor descriptor ) throws IndexNotFoundKernelException + public long getOnlineIndexId( LabelSchemaDescriptor descriptor ) throws IndexNotFoundKernelException { IndexProxy proxy = getIndexProxy( descriptor ); switch ( proxy.getState() ) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexUpdaterMap.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexUpdaterMap.java index 0fe266869a1de..a06a4ecffb7da 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexUpdaterMap.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexUpdaterMap.java @@ -30,7 +30,9 @@ import org.neo4j.helpers.collection.PrefetchingIterator; import org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException; import org.neo4j.kernel.api.index.IndexUpdater; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; +import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.impl.store.MultipleUnderlyingStorageExceptions; import org.neo4j.kernel.impl.store.UnderlyingStorageException; @@ -47,7 +49,7 @@ class IndexUpdaterMap implements AutoCloseable, Iterable { private final IndexUpdateMode indexUpdateMode; private final IndexMap indexMap; - private final Map updaterMap; + private final Map updaterMap; IndexUpdaterMap( IndexMap indexMap, IndexUpdateMode indexUpdateMode ) { @@ -56,12 +58,12 @@ class IndexUpdaterMap implements AutoCloseable, Iterable this.updaterMap = new HashMap<>(); } - Iterable descriptors() + Iterable descriptors() { return indexMap::descriptors; } - IndexUpdater getUpdater( NewIndexDescriptor descriptor ) + IndexUpdater getUpdater( LabelSchemaDescriptor descriptor ) { IndexUpdater updater = updaterMap.get( descriptor ); if ( null == updater ) @@ -81,7 +83,7 @@ public void close() throws UnderlyingStorageException { Set> exceptions = null; - for ( Map.Entry updaterEntry : updaterMap.entrySet() ) + for ( Map.Entry updaterEntry : updaterMap.entrySet() ) { IndexUpdater updater = updaterEntry.getValue(); try @@ -94,7 +96,7 @@ public void close() throws UnderlyingStorageException { exceptions = new HashSet<>(); } - exceptions.add( Pair.of( updaterEntry.getKey(), + exceptions.add( Pair.of( NewIndexDescriptorFactory.forSchema( updaterEntry.getKey() ), new UnderlyingStorageException( e ) ) ); } } @@ -132,7 +134,7 @@ public Iterator iterator() { return new PrefetchingIterator() { - Iterator descriptors = indexMap.descriptors(); + Iterator descriptors = indexMap.descriptors(); @Override protected IndexUpdater fetchNextOrNull() { diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexingService.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexingService.java index 4cb96b72767b3..ef8f78ea3a93a 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexingService.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/IndexingService.java @@ -48,6 +48,7 @@ import org.neo4j.kernel.api.index.NodeUpdates; import org.neo4j.kernel.api.index.SchemaIndexProvider; import org.neo4j.kernel.api.index.SchemaIndexProvider.Descriptor; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingController; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingMode; @@ -367,7 +368,7 @@ public void shutdown() closeAllIndexes(); } - public DoubleLongRegister indexUpdatesAndSize( NewIndexDescriptor descriptor ) throws IndexNotFoundKernelException + public DoubleLongRegister indexUpdatesAndSize( LabelSchemaDescriptor descriptor ) throws IndexNotFoundKernelException { final long indexId = indexMapRef.getOnlineIndexId( descriptor ); final DoubleLongRegister output = Registers.newDoubleLongRegister(); @@ -375,7 +376,7 @@ public DoubleLongRegister indexUpdatesAndSize( NewIndexDescriptor descriptor ) t return output; } - public double indexUniqueValuesPercentage( NewIndexDescriptor descriptor ) throws IndexNotFoundKernelException + public double indexUniqueValuesPercentage( LabelSchemaDescriptor descriptor ) throws IndexNotFoundKernelException { final long indexId = indexMapRef.getOnlineIndexId( descriptor ); final DoubleLongRegister output = Registers.newDoubleLongRegister(); @@ -432,9 +433,9 @@ private void apply( IndexUpdates updates, IndexUpdateMode updateMode ) { for ( NodeUpdates update : updates ) { - for ( NewIndexDescriptor descriptor : updaterMap.descriptors() ) + for ( LabelSchemaDescriptor descriptor : updaterMap.descriptors() ) { - Optional entry = update.forIndex( descriptor ); + Optional entry = update.forIndex( descriptor ); if ( entry.isPresent() ) { updaterMap.getUpdater( descriptor ).process( entry.get() ); @@ -569,7 +570,7 @@ public void triggerIndexSampling( IndexSamplingMode mode ) samplingController.sampleIndexes( mode ); } - public void triggerIndexSampling( NewIndexDescriptor descriptor, IndexSamplingMode mode ) + public void triggerIndexSampling( LabelSchemaDescriptor descriptor, IndexSamplingMode mode ) throws IndexNotFoundKernelException { String description = descriptor.userDescription( tokenNameLookup ); @@ -624,12 +625,12 @@ public IndexProxy getIndexProxy( long indexId ) throws IndexNotFoundKernelExcept return indexMapRef.getIndexProxy( indexId ); } - public IndexProxy getIndexProxy( NewIndexDescriptor descriptor ) throws IndexNotFoundKernelException + public IndexProxy getIndexProxy( LabelSchemaDescriptor descriptor ) throws IndexNotFoundKernelException { return indexMapRef.getIndexProxy( descriptor ); } - public long getIndexId( NewIndexDescriptor descriptor ) throws IndexNotFoundKernelException + public long getIndexId( LabelSchemaDescriptor descriptor ) throws IndexNotFoundKernelException { return indexMapRef.getIndexId( descriptor ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulator.java index 918878e526eab..f3ac106b9aedd 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulator.java @@ -47,6 +47,7 @@ import org.neo4j.kernel.api.index.PropertyAccessor; import org.neo4j.kernel.api.index.SchemaIndexProvider; import org.neo4j.kernel.api.index.SchemaIndexProvider.Descriptor; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.logging.Log; import org.neo4j.logging.LogProvider; @@ -247,11 +248,11 @@ public void verifyDeferredConstraints( PropertyAccessor accessor ) throws IndexE @Override public MultipleIndexUpdater newPopulatingUpdater( PropertyAccessor accessor ) { - Map> updaters = new HashMap<>(); + Map> updaters = new HashMap<>(); forEachPopulation( population -> { IndexUpdater updater = population.populator.newPopulatingUpdater( accessor ); - updaters.put( population.descriptor, Pair.of( population, updater ) ); + updaters.put( population.descriptor.schema(), Pair.of( population, updater ) ); } ); return new MultipleIndexUpdater( this, updaters, logProvider ); } @@ -382,12 +383,12 @@ private void forEachPopulation( ThrowingConsumer acti public static class MultipleIndexUpdater implements IndexUpdater { - private final Map> populationsWithUpdaters; + private final Map> populationsWithUpdaters; private final MultipleIndexPopulator multipleIndexPopulator; private final Log log; MultipleIndexUpdater( MultipleIndexPopulator multipleIndexPopulator, - Map> populationsWithUpdaters, LogProvider logProvider ) + Map> populationsWithUpdaters, LogProvider logProvider ) { this.multipleIndexPopulator = multipleIndexPopulator; this.populationsWithUpdaters = populationsWithUpdaters; @@ -490,7 +491,7 @@ private void flipToFailed( Throwable t ) private void add( NodeUpdates updates ) throws IndexEntryConflictException, IOException { - Optional updateOpt = updates.forIndex( descriptor ); + Optional updateOpt = updates.forIndex( descriptor.schema() ); if ( updateOpt.isPresent() ) { IndexEntryUpdate update = updateOpt.get(); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/StorageLayer.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/StorageLayer.java index 374d864c13542..de175856b9417 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/StorageLayer.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/StorageLayer.java @@ -241,34 +241,33 @@ public long indexGetCommittedId( NewIndexDescriptor index ) @Override public InternalIndexState indexGetState( NewIndexDescriptor descriptor ) throws IndexNotFoundKernelException { - return indexService.getIndexProxy( descriptor ).getState(); + return indexService.getIndexProxy( descriptor.schema() ).getState(); } @Override public PopulationProgress indexGetPopulationProgress( LabelSchemaDescriptor descriptor ) throws IndexNotFoundKernelException { - return indexService.getIndexProxy( NewIndexDescriptorFactory.forSchema( descriptor ) ).getIndexPopulationProgress(); + return indexService.getIndexProxy( descriptor ).getIndexPopulationProgress(); } @Override public long indexSize( LabelSchemaDescriptor descriptor ) throws IndexNotFoundKernelException { - Register.DoubleLongRegister result = indexService.indexUpdatesAndSize( NewIndexDescriptorFactory.forSchema( descriptor - ) ); + Register.DoubleLongRegister result = indexService.indexUpdatesAndSize( descriptor ); return result.readSecond(); } @Override public double indexUniqueValuesPercentage( LabelSchemaDescriptor descriptor ) throws IndexNotFoundKernelException { - return indexService.indexUniqueValuesPercentage( NewIndexDescriptorFactory.forSchema( descriptor ) ); + return indexService.indexUniqueValuesPercentage( descriptor ); } @Override public String indexGetFailure( LabelSchemaDescriptor descriptor ) throws IndexNotFoundKernelException { - return indexService.getIndexProxy( NewIndexDescriptorFactory.forSchema( descriptor ) ).getPopulationFailure().asString(); + return indexService.getIndexProxy( descriptor ).getPopulationFailure().asString(); } @Override @@ -542,7 +541,7 @@ public DoubleLongRegister indexSample( LabelSchemaDescriptor descriptor, DoubleL private long tryGetIndexId( LabelSchemaDescriptor descriptor) throws IndexNotFoundKernelException { - return indexService.getIndexId( NewIndexDescriptorFactory.forSchema( descriptor ) ); + return indexService.getIndexId( descriptor ); } @Override diff --git a/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/internal/BatchInserterImpl.java b/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/internal/BatchInserterImpl.java index f3af3be13845a..e4bdaceadf39b 100644 --- a/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/internal/BatchInserterImpl.java +++ b/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/internal/BatchInserterImpl.java @@ -461,7 +461,7 @@ private void repopulateAllIndexes() throws IOException, IndexEntryConflictExcept // Do a lookup from which property has changed to a list of indexes worried about that property. for ( int i = 0; i < descriptors.length; i++ ) { - Optional update = updates.forIndex( descriptors[i] ); + Optional update = updates.forIndex( descriptors[i].schema() ); if ( update.isPresent() ) { try diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/index/CompositeIndexAccessorCompatibility.java b/community/kernel/src/test/java/org/neo4j/kernel/api/index/CompositeIndexAccessorCompatibility.java index 0cc02c867ed50..c61da02dff660 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/index/CompositeIndexAccessorCompatibility.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/index/CompositeIndexAccessorCompatibility.java @@ -19,8 +19,10 @@ */ package org.neo4j.kernel.api.index; +import org.junit.Before; import org.junit.Test; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import static java.util.Arrays.asList; @@ -32,20 +34,27 @@ public class CompositeIndexAccessorCompatibility extends IndexAccessorCompatibility { protected IndexAccessor accessor; + private LabelSchemaDescriptor schemaDescriptor; public CompositeIndexAccessorCompatibility( IndexProviderCompatibilityTestSuite testSuite ) { super( testSuite, NewIndexDescriptorFactory.forLabel( 1000, 100, 200, 300 ), false ); } + @Before + public void setUp() throws Exception + { + schemaDescriptor = descriptor.schema(); + } + @Test public void testIndexSeekAndScan() throws Exception { updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, "a", "a" ), - IndexEntryUpdate.add( 2L, descriptor, "a", "a" ), - IndexEntryUpdate.add( 3L, descriptor, "b", "b" ), - IndexEntryUpdate.add( 4L, descriptor, "a", "b" ) + IndexEntryUpdate.add( 1L, schemaDescriptor, "a", "a" ), + IndexEntryUpdate.add( 2L, schemaDescriptor, "a", "a" ), + IndexEntryUpdate.add( 3L, schemaDescriptor, "b", "b" ), + IndexEntryUpdate.add( 4L, schemaDescriptor, "a", "b" ) ) ); assertThat( query( exact( 0, "a" ), exact( 1, "a" ) ), equalTo( asList( 1L, 2L ) ) ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/index/IndexAccessorCompatibility.java b/community/kernel/src/test/java/org/neo4j/kernel/api/index/IndexAccessorCompatibility.java index edcde010f5dec..b19c12233e60f 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/index/IndexAccessorCompatibility.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/index/IndexAccessorCompatibility.java @@ -75,11 +75,11 @@ public void after() throws IOException public void testIndexSeekByNumber() throws Exception { updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, -5 ), - IndexEntryUpdate.add( 2L, descriptor, 0 ), - IndexEntryUpdate.add( 3L, descriptor, 5.5 ), - IndexEntryUpdate.add( 4L, descriptor, 10.0 ), - IndexEntryUpdate.add( 5L, descriptor, 100.0 ) ) ); + IndexEntryUpdate.add( 1L, descriptor.schema(), -5 ), + IndexEntryUpdate.add( 2L, descriptor.schema(), 0 ), + IndexEntryUpdate.add( 3L, descriptor.schema(), 5.5 ), + IndexEntryUpdate.add( 4L, descriptor.schema(), 10.0 ), + IndexEntryUpdate.add( 5L, descriptor.schema(), 100.0 ) ) ); assertThat( query( range( 1, 0, true, 10, true ) ), equalTo( asList( 2L, 3L, 4L ) ) ); assertThat( query( range( 1, 10, true, null, true ) ), equalTo( asList( 4L, 5L ) ) ); @@ -94,11 +94,11 @@ public void testIndexSeekByNumber() throws Exception public void testIndexSeekByString() throws Exception { updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, "Anabelle" ), - IndexEntryUpdate.add( 2L, descriptor, "Anna" ), - IndexEntryUpdate.add( 3L, descriptor, "Bob" ), - IndexEntryUpdate.add( 4L, descriptor, "Harriet" ), - IndexEntryUpdate.add( 5L, descriptor, "William" ) ) ); + IndexEntryUpdate.add( 1L, descriptor.schema(), "Anabelle" ), + IndexEntryUpdate.add( 2L, descriptor.schema(), "Anna" ), + IndexEntryUpdate.add( 3L, descriptor.schema(), "Bob" ), + IndexEntryUpdate.add( 4L, descriptor.schema(), "Harriet" ), + IndexEntryUpdate.add( 5L, descriptor.schema(), "William" ) ) ); assertThat( query( range( 1, "Anna", true, "Harriet", false ) ), equalTo( asList( 2L, 3L ) ) ); assertThat( query( range( 1, "Harriet", true, null, false ) ), equalTo( asList( 4L, 5L ) ) ); @@ -115,11 +115,11 @@ public void testIndexSeekByString() throws Exception public void testIndexSeekByPrefix() throws Exception { updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, "a" ), - IndexEntryUpdate.add( 2L, descriptor, "A" ), - IndexEntryUpdate.add( 3L, descriptor, "apa" ), - IndexEntryUpdate.add( 4L, descriptor, "apA" ), - IndexEntryUpdate.add( 5L, descriptor, "b" ) ) ); + IndexEntryUpdate.add( 1L, descriptor.schema(), "a" ), + IndexEntryUpdate.add( 2L, descriptor.schema(), "A" ), + IndexEntryUpdate.add( 3L, descriptor.schema(), "apa" ), + IndexEntryUpdate.add( 4L, descriptor.schema(), "apA" ), + IndexEntryUpdate.add( 5L, descriptor.schema(), "b" ) ) ); assertThat( query( IndexQuery.stringPrefix( 1, "a" ) ), equalTo( asList( 1L, 3L, 4L ) ) ); assertThat( query( IndexQuery.stringPrefix( 1, "A" ) ), equalTo( Collections.singletonList( 2L ) ) ); @@ -131,8 +131,8 @@ public void testIndexSeekByPrefix() throws Exception public void testIndexSeekByPrefixOnNonStrings() throws Exception { updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, "a" ), - IndexEntryUpdate.add( 2L, descriptor, 2L ) ) ); + IndexEntryUpdate.add( 1L, descriptor.schema(), "a" ), + IndexEntryUpdate.add( 2L, descriptor.schema(), 2L ) ) ); assertThat( query( IndexQuery.stringPrefix( 1, "2" ) ), equalTo( EMPTY_LIST ) ); } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/index/IndexEntryUpdateTest.java b/community/kernel/src/test/java/org/neo4j/kernel/api/index/IndexEntryUpdateTest.java index 967aa3a044ba0..1aab1e23cdbe9 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/index/IndexEntryUpdateTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/index/IndexEntryUpdateTest.java @@ -23,7 +23,7 @@ import org.junit.Test; import org.junit.rules.ExpectedException; -import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; @@ -40,8 +40,8 @@ public class IndexEntryUpdateTest @Test public void indexEntryUpdatesShouldBeEqual() { - IndexEntryUpdate a = IndexEntryUpdate.add( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), "hi" ); - IndexEntryUpdate b = IndexEntryUpdate.add( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), "hi" ); + IndexEntryUpdate a = IndexEntryUpdate.add( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), "hi" ); + IndexEntryUpdate b = IndexEntryUpdate.add( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), "hi" ); assertThat( a, equalTo( b ) ); assertThat( a.hashCode(), equalTo( b.hashCode() ) ); } @@ -49,8 +49,8 @@ public void indexEntryUpdatesShouldBeEqual() @Test public void addShouldRetainValues() { - IndexEntryUpdate single = IndexEntryUpdate.add( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), singleValue ); - IndexEntryUpdate multi = IndexEntryUpdate.add( 0, NewIndexDescriptorFactory.forLabel( 3, 4, 5 ), multiValue ); + IndexEntryUpdate single = IndexEntryUpdate.add( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), singleValue ); + IndexEntryUpdate multi = IndexEntryUpdate.add( 0, SchemaDescriptorFactory.forLabel( 3, 4, 5 ), multiValue ); assertThat( single, not( equalTo( multi ) ) ); assertThat( single.values(), equalTo( new Object[]{singleValue} ) ); assertThat( multi.values(), equalTo( multiValue ) ); @@ -59,9 +59,9 @@ public void addShouldRetainValues() @Test public void removeShouldRetainValues() { - IndexEntryUpdate single = IndexEntryUpdate.remove( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), singleValue ); + IndexEntryUpdate single = IndexEntryUpdate.remove( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), singleValue ); IndexEntryUpdate multi = IndexEntryUpdate - .remove( 0, NewIndexDescriptorFactory.forLabel( 3, 4, 5 ), multiValue ); + .remove( 0, SchemaDescriptorFactory.forLabel( 3, 4, 5 ), multiValue ); assertThat( single, not( equalTo( multi ) ) ); assertThat( single.values(), equalTo( new Object[]{singleValue} ) ); assertThat( multi.values(), equalTo( multiValue ) ); @@ -70,7 +70,7 @@ public void removeShouldRetainValues() @Test public void addShouldThrowIfAskedForChanged() throws Exception { - IndexEntryUpdate single = IndexEntryUpdate.add( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), singleValue ); + IndexEntryUpdate single = IndexEntryUpdate.add( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), singleValue ); thrown.expect( UnsupportedOperationException.class ); single.beforeValues(); } @@ -78,7 +78,7 @@ public void addShouldThrowIfAskedForChanged() throws Exception @Test public void removeShouldThrowIfAskedForChanged() throws Exception { - IndexEntryUpdate single = IndexEntryUpdate.remove( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), singleValue ); + IndexEntryUpdate single = IndexEntryUpdate.remove( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), singleValue ); thrown.expect( UnsupportedOperationException.class ); single.beforeValues(); } @@ -86,18 +86,18 @@ public void removeShouldThrowIfAskedForChanged() throws Exception @Test public void updatesShouldEqualRegardlessOfCreationMethod() { - IndexEntryUpdate singleAdd = IndexEntryUpdate.add( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), singleValue ); + IndexEntryUpdate singleAdd = IndexEntryUpdate.add( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), singleValue ); Object[] singleAsArray = {singleValue}; IndexEntryUpdate multiAdd = IndexEntryUpdate - .add( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), singleAsArray ); + .add( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), singleAsArray ); IndexEntryUpdate singleRemove = IndexEntryUpdate - .remove( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), singleValue ); + .remove( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), singleValue ); IndexEntryUpdate multiRemove = IndexEntryUpdate - .remove( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), singleAsArray ); + .remove( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), singleAsArray ); IndexEntryUpdate singleChange = IndexEntryUpdate - .change( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), singleValue, singleValue ); + .change( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), singleValue, singleValue ); IndexEntryUpdate multiChange = IndexEntryUpdate - .change( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), singleAsArray, singleAsArray ); + .change( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), singleAsArray, singleAsArray ); assertThat( singleAdd, equalTo( multiAdd ) ); assertThat( singleRemove, equalTo( multiRemove ) ); assertThat( singleChange, equalTo( multiChange ) ); @@ -108,10 +108,10 @@ public void changedShouldRetainValues() throws Exception { String singleAfter = "Hello"; IndexEntryUpdate singleChange = IndexEntryUpdate - .change( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), singleValue, singleAfter ); + .change( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), singleValue, singleAfter ); Object[] multiAfter = {"Hello", "Hi"}; IndexEntryUpdate multiChange = IndexEntryUpdate - .change( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), multiValue, multiAfter ); + .change( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), multiValue, multiAfter ); assertThat( new Object[]{singleValue}, equalTo( singleChange.beforeValues() ) ); assertThat( new Object[]{singleAfter}, equalTo( singleChange.values() ) ); assertThat( multiValue, equalTo( multiChange.beforeValues() ) ); @@ -124,8 +124,8 @@ public void indexEntryUpdatesShouldBeEqualForDeepValues() Object value1 = arraysOfDepth( 13 ); Object value2 = arraysOfDepth( 13 ); - IndexEntryUpdate a = IndexEntryUpdate.add( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), value1 ); - IndexEntryUpdate b = IndexEntryUpdate.add( 0, NewIndexDescriptorFactory.forLabel( 3, 4 ), value2 ); + IndexEntryUpdate a = IndexEntryUpdate.add( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), value1 ); + IndexEntryUpdate b = IndexEntryUpdate.add( 0, SchemaDescriptorFactory.forLabel( 3, 4 ), value2 ); assertThat( a, equalTo( b ) ); assertThat( a.hashCode(), equalTo( b.hashCode() ) ); } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/index/IndexProviderCompatibilityTestSuite.java b/community/kernel/src/test/java/org/neo4j/kernel/api/index/IndexProviderCompatibilityTestSuite.java index 9e1e237ed0b68..e66cc075c7c0e 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/index/IndexProviderCompatibilityTestSuite.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/index/IndexProviderCompatibilityTestSuite.java @@ -27,6 +27,7 @@ import java.io.File; import org.neo4j.io.fs.FileSystemAbstraction; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.test.rule.TestDirectory; import org.neo4j.test.rule.fs.DefaultFileSystemRule; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/index/NodeUpdatesTest.java b/community/kernel/src/test/java/org/neo4j/kernel/api/index/NodeUpdatesTest.java index 6746107aceb56..6ee5b3e79619e 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/index/NodeUpdatesTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/index/NodeUpdatesTest.java @@ -25,6 +25,8 @@ import org.neo4j.kernel.api.properties.DefinedProperty; import org.neo4j.kernel.api.properties.Property; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; @@ -41,9 +43,9 @@ public class NodeUpdatesTest private static final int propertyKeyId2 = 1; private static final long[] labels = new long[]{labelId}; private static final long[] empty = new long[]{}; - private static final NewIndexDescriptor index1 = NewIndexDescriptorFactory.forLabel( labelId, propertyKeyId1 ); - private static final NewIndexDescriptor index2 = NewIndexDescriptorFactory.forLabel( labelId, propertyKeyId2 ); - private static final NewIndexDescriptor index12 = NewIndexDescriptorFactory.forLabel( labelId, propertyKeyId1, propertyKeyId2 ); + private static final LabelSchemaDescriptor index1 = SchemaDescriptorFactory.forLabel( labelId, propertyKeyId1 ); + private static final LabelSchemaDescriptor index2 = SchemaDescriptorFactory.forLabel( labelId, propertyKeyId2 ); + private static final LabelSchemaDescriptor index12 = SchemaDescriptorFactory.forLabel( labelId, propertyKeyId1, propertyKeyId2 ); private static final DefinedProperty property1 = Property.stringProperty( propertyKeyId1, "Neo" ); private static final DefinedProperty property2 = Property.longProperty( propertyKeyId2, 100L ); private static final Object[] values12 = new Object[]{property1.value(), property2.value()}; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/index/NonUniqueIndexAccessorCompatibility.java b/community/kernel/src/test/java/org/neo4j/kernel/api/index/NonUniqueIndexAccessorCompatibility.java index e46359861dc97..c21c39a9fb3d3 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/index/NonUniqueIndexAccessorCompatibility.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/index/NonUniqueIndexAccessorCompatibility.java @@ -19,11 +19,13 @@ */ package org.neo4j.kernel.api.index; +import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import java.util.Collections; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import static java.util.Arrays.asList; @@ -45,11 +47,20 @@ " errors or warnings in some IDEs about test classes needing a public zero-arg constructor." ) public class NonUniqueIndexAccessorCompatibility extends IndexAccessorCompatibility { + + private LabelSchemaDescriptor labelSchemaDescriptor; + public NonUniqueIndexAccessorCompatibility( IndexProviderCompatibilityTestSuite testSuite ) { super( testSuite, NewIndexDescriptorFactory.forLabel( 1000, 100 ), false ); } + @Before + public void setUp() throws Exception + { + labelSchemaDescriptor = descriptor.schema(); + } + @Test public void closingAnOnlineIndexUpdaterMustNotThrowEvenIfItHasBeenFedConflictingData() throws Exception { @@ -60,8 +71,8 @@ public void closingAnOnlineIndexUpdaterMustNotThrowEvenIfItHasBeenFedConflicting // the exact-match filtering we do on index seeks in StateHandlingStatementOperations. updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, "a" ), - IndexEntryUpdate.add( 2L, descriptor, "a" ) ) ); + IndexEntryUpdate.add( 1L, labelSchemaDescriptor, "a" ), + IndexEntryUpdate.add( 2L, labelSchemaDescriptor, "a" ) ) ); assertThat( query( exact( 1, "a" ) ), equalTo( asList( 1L, 2L ) ) ); } @@ -70,9 +81,9 @@ public void closingAnOnlineIndexUpdaterMustNotThrowEvenIfItHasBeenFedConflicting public void testIndexSeekAndScan() throws Exception { updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, "a" ), - IndexEntryUpdate.add( 2L, descriptor, "a" ), - IndexEntryUpdate.add( 3L, descriptor, "b" ) ) ); + IndexEntryUpdate.add( 1L, labelSchemaDescriptor, "a" ), + IndexEntryUpdate.add( 2L, labelSchemaDescriptor, "a" ), + IndexEntryUpdate.add( 3L, labelSchemaDescriptor, "b" ) ) ); assertThat( query( exact( 1, "a" ) ), equalTo( asList( 1L, 2L ) ) ); assertThat( query( exists( 1 ) ), equalTo( asList( 1L, 2L, 3L ) ) ); @@ -82,11 +93,11 @@ public void testIndexSeekAndScan() throws Exception public void testIndexRangeSeekByNumberWithDuplicates() throws Exception { updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, -5 ), - IndexEntryUpdate.add( 2L, descriptor, -5 ), - IndexEntryUpdate.add( 3L, descriptor, 0 ), - IndexEntryUpdate.add( 4L, descriptor, 5 ), - IndexEntryUpdate.add( 5L, descriptor, 5 ) ) ); + IndexEntryUpdate.add( 1L, labelSchemaDescriptor, -5 ), + IndexEntryUpdate.add( 2L, labelSchemaDescriptor, -5 ), + IndexEntryUpdate.add( 3L, labelSchemaDescriptor, 0 ), + IndexEntryUpdate.add( 4L, labelSchemaDescriptor, 5 ), + IndexEntryUpdate.add( 5L, labelSchemaDescriptor, 5 ) ) ); assertThat( query( range( 1, -5, true, 5, true ) ), equalTo( asList( 1L, 2L, 3L, 4L, 5L ) ) ); assertThat( query( range( 1, -3, true, -1, true ) ), equalTo( EMPTY_LIST ) ); @@ -99,11 +110,11 @@ public void testIndexRangeSeekByNumberWithDuplicates() throws Exception public void testIndexRangeSeekByStringWithDuplicates() throws Exception { updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, "Anna" ), - IndexEntryUpdate.add( 2L, descriptor, "Anna" ), - IndexEntryUpdate.add( 3L, descriptor, "Bob" ), - IndexEntryUpdate.add( 4L, descriptor, "William" ), - IndexEntryUpdate.add( 5L, descriptor, "William" ) ) ); + IndexEntryUpdate.add( 1L, labelSchemaDescriptor, "Anna" ), + IndexEntryUpdate.add( 2L, labelSchemaDescriptor, "Anna" ), + IndexEntryUpdate.add( 3L, labelSchemaDescriptor, "Bob" ), + IndexEntryUpdate.add( 4L, labelSchemaDescriptor, "William" ), + IndexEntryUpdate.add( 5L, labelSchemaDescriptor, "William" ) ) ); assertThat( query( range( 1, "Anna", false, "William", false ) ), equalTo( singletonList( 3L ) ) ); assertThat( query( range( 1, "Arabella", false, "Bob", false ) ), equalTo( EMPTY_LIST ) ); @@ -116,11 +127,11 @@ public void testIndexRangeSeekByStringWithDuplicates() throws Exception public void testIndexRangeSeekByPrefixWithDuplicates() throws Exception { updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, "a" ), - IndexEntryUpdate.add( 2L, descriptor, "A" ), - IndexEntryUpdate.add( 3L, descriptor, "apa" ), - IndexEntryUpdate.add( 4L, descriptor, "apa" ), - IndexEntryUpdate.add( 5L, descriptor, "apa" ) ) ); + IndexEntryUpdate.add( 1L, labelSchemaDescriptor, "a" ), + IndexEntryUpdate.add( 2L, labelSchemaDescriptor, "A" ), + IndexEntryUpdate.add( 3L, labelSchemaDescriptor, "apa" ), + IndexEntryUpdate.add( 4L, labelSchemaDescriptor, "apa" ), + IndexEntryUpdate.add( 5L, labelSchemaDescriptor, "apa" ) ) ); assertThat( query( stringPrefix( 1, "a" ) ), equalTo( asList( 1L, 3L, 4L, 5L ) ) ); assertThat( query( stringPrefix( 1, "apa" ) ), equalTo( asList( 3L, 4L, 5L ) ) ); @@ -130,11 +141,11 @@ public void testIndexRangeSeekByPrefixWithDuplicates() throws Exception public void testIndexFullSearchWithDuplicates() throws Exception { updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, "a" ), - IndexEntryUpdate.add( 2L, descriptor, "A" ), - IndexEntryUpdate.add( 3L, descriptor, "apa" ), - IndexEntryUpdate.add( 4L, descriptor, "apa" ), - IndexEntryUpdate.add( 5L, descriptor, "apalong" ) ) ); + IndexEntryUpdate.add( 1L, labelSchemaDescriptor, "a" ), + IndexEntryUpdate.add( 2L, labelSchemaDescriptor, "A" ), + IndexEntryUpdate.add( 3L, labelSchemaDescriptor, "apa" ), + IndexEntryUpdate.add( 4L, labelSchemaDescriptor, "apa" ), + IndexEntryUpdate.add( 5L, labelSchemaDescriptor, "apalong" ) ) ); assertThat( query( stringContains( 1, "a" ) ), equalTo( asList( 1L, 3L, 4L, 5L ) ) ); assertThat( query( stringContains( 1, "apa" ) ), equalTo( asList( 3L, 4L, 5L ) ) ); @@ -145,12 +156,12 @@ public void testIndexFullSearchWithDuplicates() throws Exception public void testIndexEndsWithWithDuplicated() throws Exception { updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, "a" ), - IndexEntryUpdate.add( 2L, descriptor, "A" ), - IndexEntryUpdate.add( 3L, descriptor, "apa" ), - IndexEntryUpdate.add( 4L, descriptor, "apa" ), - IndexEntryUpdate.add( 5L, descriptor, "longapa" ), - IndexEntryUpdate.add( 6L, descriptor, "apalong" ) ) ); + IndexEntryUpdate.add( 1L, labelSchemaDescriptor, "a" ), + IndexEntryUpdate.add( 2L, labelSchemaDescriptor, "A" ), + IndexEntryUpdate.add( 3L, labelSchemaDescriptor, "apa" ), + IndexEntryUpdate.add( 4L, labelSchemaDescriptor, "apa" ), + IndexEntryUpdate.add( 5L, labelSchemaDescriptor, "longapa" ), + IndexEntryUpdate.add( 6L, labelSchemaDescriptor, "apalong" ) ) ); assertThat( query( stringSuffix( 1, "a" ) ), equalTo( asList( 1L, 3L, 4L, 5L ) ) ); assertThat( query( stringSuffix( 1, "apa" ) ), equalTo( asList( 3L, 4L, 5L ) ) ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/index/NonUniqueIndexPopulatorCompatibility.java b/community/kernel/src/test/java/org/neo4j/kernel/api/index/NonUniqueIndexPopulatorCompatibility.java index 0178cfe019bfa..100f85fc10b2d 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/index/NonUniqueIndexPopulatorCompatibility.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/index/NonUniqueIndexPopulatorCompatibility.java @@ -58,8 +58,8 @@ public void shouldProvidePopulatorThatAcceptsDuplicateEntries() throws Exception IndexSamplingConfig indexSamplingConfig = new IndexSamplingConfig( Config.empty() ); IndexPopulator populator = indexProvider.getPopulator( 17, descriptor, indexSamplingConfig ); populator.create(); - populator.add( Arrays.asList( IndexEntryUpdate.add( 1, descriptor, "value1" ), - IndexEntryUpdate.add( 2, descriptor, "value1" ) ) ); + populator.add( Arrays.asList( IndexEntryUpdate.add( 1, descriptor.schema(), "value1" ), + IndexEntryUpdate.add( 2, descriptor.schema(), "value1" ) ) ); populator.close( true ); // then @@ -132,11 +132,11 @@ public void shouldApplyUpdatesIdempotently() throws Exception ( nodeId1, propertyKeyId ) -> Property.stringProperty( propertyKeyId, propertyValue ); // this update (using add())... - populator.add( singletonList( IndexEntryUpdate.add( nodeId, descriptor, propertyValue ) ) ); + populator.add( singletonList( IndexEntryUpdate.add( nodeId, descriptor.schema(), propertyValue ) ) ); // ...is the same as this update (using update()) try ( IndexUpdater updater = populator.newPopulatingUpdater( propertyAccessor ) ) { - updater.process( add( nodeId, descriptor, propertyValue ) ); + updater.process( add( nodeId, descriptor.schema(), propertyValue ) ); } populator.close( true ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueIndexAccessorCompatibility.java b/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueIndexAccessorCompatibility.java index 4ea286903b7a0..ebcf524307735 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueIndexAccessorCompatibility.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueIndexAccessorCompatibility.java @@ -52,8 +52,8 @@ public void closingAnOnlineIndexUpdaterMustNotThrowEvenIfItHasBeenFedConflicting // the exact-match filtering we do on index seeks in StateHandlingStatementOperations. updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, "a" ), - IndexEntryUpdate.add( 2L, descriptor, "a" ) ) ); + IndexEntryUpdate.add( 1L, descriptor.schema(), "a" ), + IndexEntryUpdate.add( 2L, descriptor.schema(), "a" ) ) ); assertThat( query( exact( 1, "a" ) ), equalTo( asList( 1L, 2L ) ) ); } @@ -62,9 +62,9 @@ public void closingAnOnlineIndexUpdaterMustNotThrowEvenIfItHasBeenFedConflicting public void testIndexSeekAndScan() throws Exception { updateAndCommit( asList( - IndexEntryUpdate.add( 1L, descriptor, "a" ), - IndexEntryUpdate.add( 2L, descriptor, "b" ), - IndexEntryUpdate.add( 3L, descriptor, "c" ) ) ); + IndexEntryUpdate.add( 1L, descriptor.schema(), "a" ), + IndexEntryUpdate.add( 2L, descriptor.schema(), "b" ), + IndexEntryUpdate.add( 3L, descriptor.schema(), "c" ) ) ); assertThat( query( exact( 1, "a" ) ), equalTo( asList( 1L ) ) ); assertThat( query( IndexQuery.exists( 1 ) ), equalTo( asList( 1L, 2L, 3L ) ) ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueIndexPopulatorCompatibility.java b/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueIndexPopulatorCompatibility.java index fe43afdb2047e..955c717f1e6d8 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueIndexPopulatorCompatibility.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/api/index/UniqueIndexPopulatorCompatibility.java @@ -62,8 +62,8 @@ public void shouldProvidePopulatorThatEnforcesUniqueConstraints() throws Excepti IndexSamplingConfig indexSamplingConfig = new IndexSamplingConfig( Config.empty() ); IndexPopulator populator = indexProvider.getPopulator( 17, descriptor, indexSamplingConfig ); populator.create(); - populator.add( Arrays.asList( IndexEntryUpdate.add( nodeId1, descriptor, value ), - IndexEntryUpdate.add( nodeId2, descriptor, value ) ) ); + populator.add( Arrays.asList( IndexEntryUpdate.add( nodeId1, descriptor.schema(), value ), + IndexEntryUpdate.add( nodeId2, descriptor.schema(), value ) ) ); try { PropertyAccessor propertyAccessor = mock( PropertyAccessor.class ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/builtinprocs/ResampleIndexProcedureTest.java b/community/kernel/src/test/java/org/neo4j/kernel/builtinprocs/ResampleIndexProcedureTest.java index 2d0ab6a811e12..6060ac3726031 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/builtinprocs/ResampleIndexProcedureTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/builtinprocs/ResampleIndexProcedureTest.java @@ -127,6 +127,6 @@ public void shouldTriggerResampling() procedure.resampleIndex( ":Person(name)" ); - verify( indexingService ).triggerIndexSampling( index, IndexSamplingMode.TRIGGER_REBUILD_ALL ); + verify( indexingService ).triggerIndexSampling( index.schema(), IndexSamplingMode.TRIGGER_REBUILD_ALL ); } } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/DataIntegrityValidatingStatementOperationsTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/DataIntegrityValidatingStatementOperationsTest.java index 016a6784ca994..36592278fb019 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/DataIntegrityValidatingStatementOperationsTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/DataIntegrityValidatingStatementOperationsTest.java @@ -28,6 +28,8 @@ import java.util.Iterator; import org.neo4j.kernel.api.schema.NodePropertyDescriptor; +import org.neo4j.kernel.api.exceptions.schema.AlreadyConstrainedException; +import org.neo4j.kernel.api.exceptions.schema.AlreadyIndexedException; import org.neo4j.kernel.api.exceptions.schema.DropIndexFailureException; import org.neo4j.kernel.api.exceptions.schema.IllegalTokenNameException; import org.neo4j.kernel.api.exceptions.schema.IndexBelongsToConstraintException; @@ -73,8 +75,15 @@ public void shouldDisallowReAddingIndex() throws Exception when( innerRead.indexGetForLabelAndPropertyKey( state, SchemaBoundary.map( descriptor ) ) ).thenReturn( index ); // WHEN - ctx.indexCreate( state, descriptor ); - fail( "Should have thrown exception." ); + try + { + ctx.indexCreate( state, descriptor ); + fail( "Should have thrown exception." ); + } + catch ( AlreadyIndexedException e ) + { + // ok + } // THEN verify( innerWrite, never() ).indexCreate( eq( state ), anyObject() ); @@ -91,8 +100,15 @@ public void shouldDisallowAddingIndexWhenConstraintIndexExists() throws Exceptio when( innerRead.indexGetForLabelAndPropertyKey( state, SchemaBoundary.map( descriptor ) ) ).thenReturn( uniqueIndex ); // WHEN - ctx.indexCreate( state, descriptor ); - fail( "Should have thrown exception." ); + try + { + ctx.indexCreate( state, descriptor ); + fail( "Should have thrown exception." ); + } + catch ( AlreadyConstrainedException e ) + { + // ok + } // THEN verify( innerWrite, never() ).indexCreate( eq( state ), anyObject() ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/BatchingMultipleIndexPopulatorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/BatchingMultipleIndexPopulatorTest.java index d101f6556175b..a55eedf71f0da 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/BatchingMultipleIndexPopulatorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/BatchingMultipleIndexPopulatorTest.java @@ -93,8 +93,8 @@ public void populateFromQueueDoesNothingIfThresholdNotReached() throws Exception IndexUpdater updater = mock( IndexUpdater.class ); when( populator.newPopulatingUpdater( any() ) ).thenReturn( updater ); - IndexEntryUpdate update1 = IndexEntryUpdate.add( 1, index1, "foo" ); - IndexEntryUpdate update2 = IndexEntryUpdate.add( 2, index1, "bar" ); + IndexEntryUpdate update1 = IndexEntryUpdate.add( 1, index1.schema(), "foo" ); + IndexEntryUpdate update2 = IndexEntryUpdate.add( 2, index1.schema(), "bar" ); batchingPopulator.queue( update1 ); batchingPopulator.queue( update2 ); @@ -127,9 +127,9 @@ public void populateFromQueuePopulatesWhenThresholdReached() throws Exception when( populator2.newPopulatingUpdater( any() ) ).thenReturn( updater2 ); batchingPopulator.indexAllNodes(); - IndexEntryUpdate update1 = IndexEntryUpdate.add( 1, index1, "foo" ); - IndexEntryUpdate update2 = IndexEntryUpdate.add( 2, index42, "bar" ); - IndexEntryUpdate update3 = IndexEntryUpdate.add( 3, index1, "baz" ); + IndexEntryUpdate update1 = IndexEntryUpdate.add( 1, index1.schema(), "foo" ); + IndexEntryUpdate update2 = IndexEntryUpdate.add( 2, index42.schema(), "bar" ); + IndexEntryUpdate update3 = IndexEntryUpdate.add( 3, index1.schema(), "baz" ); batchingPopulator.queue( update1 ); batchingPopulator.queue( update2 ); batchingPopulator.queue( update3 ); @@ -303,7 +303,7 @@ public void populatorMarkedAsFailedAndUpdatesNotAdded() throws Exception private IndexEntryUpdate forIndex( NodeUpdates update1, NewIndexDescriptor index ) { - return update1.forIndex( index ).get(); + return update1.forIndex( index.schema() ).get(); } private NodeUpdates nodeUpdates( int nodeId, int propertyId, String propertyValue, long... diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexCRUDIT.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexCRUDIT.java index 710effd5bee18..4b4359bb25c61 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexCRUDIT.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexCRUDIT.java @@ -46,8 +46,9 @@ import org.neo4j.kernel.api.index.IndexUpdater; import org.neo4j.kernel.api.index.PropertyAccessor; import org.neo4j.kernel.api.index.SchemaIndexProvider; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; -import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.extension.KernelExtensionFactory; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig; import org.neo4j.kernel.impl.api.scan.LabelScanStoreProvider; @@ -93,9 +94,9 @@ public void addingANodeWithPropertyShouldGetIndexed() throws Exception ReadOperations readOperations = ctxSupplier.get().readOperations(); int propertyKey1 = readOperations.propertyKeyGetForName( indexProperty ); int label = readOperations.labelGetForName( myLabel.name() ); - NewIndexDescriptor index = NewIndexDescriptorFactory.forLabel( label, propertyKey1 ); + LabelSchemaDescriptor descriptor = SchemaDescriptorFactory.forLabel( label, propertyKey1 ); assertThat( writer.updatesCommitted, equalTo( asSet( - IndexEntryUpdate.add( node.getId(), index, value1 ) ) ) ); + IndexEntryUpdate.add( node.getId(), descriptor, value1 ) ) ) ); tx.success(); } // We get two updates because we both add a label and a property to be indexed @@ -133,9 +134,9 @@ public void addingALabelToPreExistingNodeShouldGetIndexed() throws Exception ReadOperations readOperations = ctxSupplier.get().readOperations(); int propertyKey1 = readOperations.propertyKeyGetForName( indexProperty ); int label = readOperations.labelGetForName( myLabel.name() ); - NewIndexDescriptor index = NewIndexDescriptorFactory.forLabel( label, propertyKey1 ); + LabelSchemaDescriptor descriptor = SchemaDescriptorFactory.forLabel( label, propertyKey1 ); assertThat( writer.updatesCommitted, equalTo( asSet( - IndexEntryUpdate.add( node.getId(), index, value ) ) ) ); + IndexEntryUpdate.add( node.getId(), descriptor, value ) ) ) ); tx.success(); } } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexPopulationJobTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexPopulationJobTest.java index 2cc013e741226..9c4f7086560be 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexPopulationJobTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexPopulationJobTest.java @@ -54,6 +54,8 @@ import org.neo4j.kernel.api.index.NodeUpdates; import org.neo4j.kernel.api.index.PropertyAccessor; import org.neo4j.kernel.api.labelscan.NodeLabelUpdate; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.api.security.AnonymousContext; @@ -150,13 +152,13 @@ public void shouldPopulateIndexWithOneNode() throws Exception long nodeId = createNode( map( name, value ), FIRST ); IndexPopulator populator = spy( inMemoryPopulator( false ) ); IndexPopulationJob job = newIndexPopulationJob( populator, new FlippableIndexProxy(), false ); - NewIndexDescriptor index = NewIndexDescriptorFactory.forLabel( 0, 0 ); + LabelSchemaDescriptor descriptor = SchemaDescriptorFactory.forLabel( 0, 0 ); // WHEN job.run(); // THEN - IndexEntryUpdate update = IndexEntryUpdate.add( nodeId, index, value ); + IndexEntryUpdate update = IndexEntryUpdate.add( nodeId, descriptor, value ); verify( populator ).create(); verify( populator ).configureSampling( true ); @@ -197,14 +199,14 @@ public void shouldPopulateIndexWithASmallDataset() throws Exception long node4 = createNode( map( age, 35, name, value ), FIRST ); IndexPopulator populator = spy( inMemoryPopulator( false ) ); IndexPopulationJob job = newIndexPopulationJob( populator, new FlippableIndexProxy(), false ); - NewIndexDescriptor index = NewIndexDescriptorFactory.forLabel( 0, 0 ); + LabelSchemaDescriptor descriptor = SchemaDescriptorFactory.forLabel( 0, 0 ); // WHEN job.run(); // THEN - IndexEntryUpdate update1 = IndexEntryUpdate.add( node1, index, value ); - IndexEntryUpdate update2 = add( node4, index, value ); + IndexEntryUpdate update1 = IndexEntryUpdate.add( node1, descriptor, value ); + IndexEntryUpdate update2 = add( node4, descriptor, value ); verify( populator ).create(); verify( populator ).configureSampling( true ); @@ -451,14 +453,14 @@ private class NodeChangingWriter extends IndexPopulator.Adapter private final long nodeToChange; private final Object newValue; private final Object previousValue; - private final NewIndexDescriptor index; + private final LabelSchemaDescriptor index; NodeChangingWriter( long nodeToChange, int propertyKeyId, Object previousValue, Object newValue, int label ) { this.nodeToChange = nodeToChange; this.previousValue = previousValue; this.newValue = newValue; - this.index = NewIndexDescriptorFactory.forLabel( label, propertyKeyId ); + this.index = SchemaDescriptorFactory.forLabel( label, propertyKeyId ); } @Override @@ -519,13 +521,13 @@ private class NodeDeletingWriter extends IndexPopulator.Adapter private final long nodeToDelete; private IndexPopulationJob job; private final Object valueToDelete; - private final NewIndexDescriptor index; + private final LabelSchemaDescriptor index; NodeDeletingWriter( long nodeToDelete, int propertyKeyId, Object valueToDelete, int label ) { this.nodeToDelete = nodeToDelete; this.valueToDelete = valueToDelete; - this.index = NewIndexDescriptorFactory.forLabel( label, propertyKeyId ); + this.index = SchemaDescriptorFactory.forLabel( label, propertyKeyId ); } public void setJob( IndexPopulationJob job ) diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexRecoveryIT.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexRecoveryIT.java index 9ab745ca483e4..20c53cc222ba0 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexRecoveryIT.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexRecoveryIT.java @@ -50,6 +50,8 @@ import org.neo4j.kernel.api.index.IndexUpdater; import org.neo4j.kernel.api.index.InternalIndexState; import org.neo4j.kernel.api.index.SchemaIndexProvider; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.extension.KernelExtensionFactory; @@ -347,12 +349,12 @@ private Set createSomeBananas( Label label ) { int labelId = statement.readOperations().labelGetForName( label.name() ); int propertyKeyId = statement.readOperations().propertyKeyGetForName( key ); - NewIndexDescriptor index = NewIndexDescriptorFactory.forLabel( labelId, propertyKeyId ); + LabelSchemaDescriptor schemaDescriptor = SchemaDescriptorFactory.forLabel( labelId, propertyKeyId ); for ( int number : new int[] {4, 10} ) { Node node = db.createNode( label ); node.setProperty( key, number ); - updates.add( IndexEntryUpdate.add( node.getId(), index, number ) ); + updates.add( IndexEntryUpdate.add( node.getId(), schemaDescriptor, number ) ); } } tx.success(); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexStatisticsTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexStatisticsTest.java index b74043dab914d..5725dacce842e 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexStatisticsTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexStatisticsTest.java @@ -436,14 +436,14 @@ private long indexSize( NewIndexDescriptor descriptor ) throws KernelException { return ((GraphDatabaseAPI) db).getDependencyResolver() .resolveDependency( IndexingService.class ) - .indexUpdatesAndSize( descriptor ).readSecond(); + .indexUpdatesAndSize( descriptor.schema() ).readSecond(); } private long indexUpdates( NewIndexDescriptor descriptor ) throws KernelException { return ((GraphDatabaseAPI) db).getDependencyResolver() .resolveDependency( IndexingService.class ) - .indexUpdatesAndSize( descriptor ).readFirst(); + .indexUpdatesAndSize( descriptor.schema() ).readFirst(); } private double indexSelectivity( NewIndexDescriptor descriptor ) throws KernelException diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexUpdaterMapTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexUpdaterMapTest.java index d08066c38edd5..ff0a724fb5aac 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexUpdaterMapTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexUpdaterMapTest.java @@ -80,7 +80,7 @@ public void shouldRetrieveUpdaterFromIndexMapForExistingIndex() throws Exception indexMap.putIndexProxy( 0, indexProxy1 ); // when - IndexUpdater updater = updaterMap.getUpdater( indexDescriptor1 ); + IndexUpdater updater = updaterMap.getUpdater( indexDescriptor1.schema() ); // then assertEquals( indexUpdater1, updater ); @@ -94,7 +94,7 @@ public void shouldRetrieveUpdateUsingLabelAndProperty() indexMap.putIndexProxy( 0, indexProxy1 ); // when - IndexUpdater updater = updaterMap.getUpdater( indexDescriptor1 ); + IndexUpdater updater = updaterMap.getUpdater( indexDescriptor1.schema() ); // then assertThat( updater, equalTo( indexUpdater1 ) ); @@ -107,8 +107,8 @@ public void shouldRetrieveSameUpdaterFromIndexMapForExistingIndexWhenCalledTwice indexMap.putIndexProxy( 0, indexProxy1 ); // when - IndexUpdater updater1 = updaterMap.getUpdater( indexDescriptor1 ); - IndexUpdater updater2 = updaterMap.getUpdater( indexDescriptor1 ); + IndexUpdater updater1 = updaterMap.getUpdater( indexDescriptor1.schema() ); + IndexUpdater updater2 = updaterMap.getUpdater( indexDescriptor1.schema() ); // then assertEquals( updater1, updater2 ); @@ -119,7 +119,7 @@ public void shouldRetrieveSameUpdaterFromIndexMapForExistingIndexWhenCalledTwice public void shouldRetrieveNoUpdaterForNonExistingIndex() throws Exception { // when - IndexUpdater updater = updaterMap.getUpdater( indexDescriptor1 ); + IndexUpdater updater = updaterMap.getUpdater( indexDescriptor1.schema() ); // then assertNull( updater ); @@ -133,8 +133,8 @@ public void shouldCloseAllUpdaters() throws Exception indexMap.putIndexProxy( 0, indexProxy1 ); indexMap.putIndexProxy( 1, indexProxy2 ); - IndexUpdater updater1 = updaterMap.getUpdater( indexDescriptor1 ); - IndexUpdater updater2 = updaterMap.getUpdater( indexDescriptor2 ); + IndexUpdater updater1 = updaterMap.getUpdater( indexDescriptor1.schema() ); + IndexUpdater updater2 = updaterMap.getUpdater( indexDescriptor2.schema() ); // hen updaterMap.close(); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexingServiceTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexingServiceTest.java index 57ecd818d8351..619a2caab7fc0 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexingServiceTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexingServiceTest.java @@ -531,7 +531,7 @@ public void shouldLogTriggerSamplingOnAnIndexes() throws Exception life.start(); // when - indexingService.triggerIndexSampling( descriptor , mode ); + indexingService.triggerIndexSampling( descriptor.schema() , mode ); // then String userDescription = descriptor.schema().userDescription( nameLookup ); @@ -1002,7 +1002,7 @@ private NodeUpdates addNodeUpdate( long nodeId, Object propertyValue, int labelI private IndexEntryUpdate add( long nodeId, Object propertyValue ) { - return IndexEntryUpdate.add( nodeId, index, propertyValue ); + return IndexEntryUpdate.add( nodeId, index.schema(), propertyValue ); } private IndexingService newIndexingServiceWithMockedDependencies( IndexPopulator populator, diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulatorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulatorTest.java index 23c83b41fafd3..bd84f38966b85 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulatorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulatorTest.java @@ -38,6 +38,8 @@ import org.neo4j.kernel.api.index.IndexUpdater; import org.neo4j.kernel.api.index.PropertyAccessor; import org.neo4j.kernel.api.index.SchemaIndexProvider; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.impl.api.index.MultipleIndexPopulator.IndexPopulation; @@ -72,7 +74,7 @@ public class MultipleIndexPopulatorTest @InjectMocks private MultipleIndexPopulator multipleIndexPopulator; - private final NewIndexDescriptor index1 = NewIndexDescriptorFactory.forLabel( 1, 1 ); + private final LabelSchemaDescriptor index1 = SchemaDescriptorFactory.forLabel( 1, 1 ); @Before public void setUp() @@ -312,7 +314,7 @@ public void testMultiplePopulatorUpdater() IndexUpdater multipleIndexUpdater = multipleIndexPopulator.newPopulatingUpdater( mock( PropertyAccessor.class ) ); - IndexEntryUpdate propertyUpdate = createNodePropertyUpdate( index1 ); + IndexEntryUpdate propertyUpdate = createIndexEntryUpdate( index1 ); multipleIndexUpdater.process( propertyUpdate ); checkPopulatorFailure( indexPopulator2 ); @@ -331,7 +333,7 @@ public void testNonApplicableUpdaterDoNotUpdatePopulator() IndexUpdater multipleIndexUpdater = multipleIndexPopulator.newPopulatingUpdater( mock( PropertyAccessor.class ) ); - IndexEntryUpdate propertyUpdate = createNodePropertyUpdate( index1 ); + IndexEntryUpdate propertyUpdate = createIndexEntryUpdate( index1 ); multipleIndexUpdater.process( propertyUpdate ); verifyZeroInteractions( indexUpdater1 ); @@ -341,7 +343,7 @@ public void testNonApplicableUpdaterDoNotUpdatePopulator() public void testPropertyUpdateFailure() throws IOException, IndexEntryConflictException { - IndexEntryUpdate propertyUpdate = createNodePropertyUpdate( index1 ); + IndexEntryUpdate propertyUpdate = createIndexEntryUpdate( index1 ); IndexUpdater indexUpdater1 = mock( IndexUpdater.class ); IndexPopulator indexPopulator1 = createIndexPopulator( indexUpdater1 ); @@ -383,9 +385,9 @@ public void testMultiplePropertyUpdateFailures() checkPopulatorFailure( populator ); } - private IndexEntryUpdate createNodePropertyUpdate( NewIndexDescriptor index ) + private IndexEntryUpdate createIndexEntryUpdate( LabelSchemaDescriptor schemaDescriptor ) { - return IndexEntryUpdate.add( 1, index, "theValue" ); + return IndexEntryUpdate.add( 1, schemaDescriptor, "theValue" ); } private RuntimeException getSampleError() diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulatorUpdatesTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulatorUpdatesTest.java index 9a5f5135bb2df..096fa6419687b 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulatorUpdatesTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulatorUpdatesTest.java @@ -41,6 +41,8 @@ import org.neo4j.kernel.api.index.NodeUpdates; import org.neo4j.kernel.api.index.SchemaIndexProvider; import org.neo4j.kernel.api.labelscan.NodeLabelUpdate; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.impl.locking.LockService; @@ -185,12 +187,12 @@ public NodeRecord answer( InvocationOnMock invocation ) throws Throwable private static class NodeUpdateProcessListener implements Listener { private final MultipleIndexPopulator indexPopulator; - private final NewIndexDescriptor index; + private final LabelSchemaDescriptor index; public NodeUpdateProcessListener( MultipleIndexPopulator indexPopulator ) { this.indexPopulator = indexPopulator; - this.index = NewIndexDescriptorFactory.forLabel( 1, 1 ); + this.index = SchemaDescriptorFactory.forLabel( 1, 1 ); } @Override diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/Commands.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/Commands.java index efae31a98fc27..9c2870eb70a8f 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/Commands.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/Commands.java @@ -27,6 +27,7 @@ import org.neo4j.kernel.api.index.SchemaIndexProvider; import org.neo4j.kernel.api.schema.NodePropertyDescriptor; +import org.neo4j.kernel.api.schema_new.SchemaBoundary; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.impl.store.DynamicNodeLabels; import org.neo4j.kernel.impl.store.PropertyStore; @@ -144,7 +145,7 @@ public static SchemaRuleCommand createIndexRule( SchemaIndexProvider.Descriptor { SchemaRule rule = IndexRule.indexRule( id, - NewIndexDescriptorFactory.forLabel( descriptor.getLabelId(), descriptor.getPropertyKeyId() ), + NewIndexDescriptorFactory.forSchema( SchemaBoundary.map( descriptor ) ), provider ); DynamicRecord record = new DynamicRecord( id ); record.setInUse( true ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/IndexWorkSyncTransactionApplicationStressIT.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/IndexWorkSyncTransactionApplicationStressIT.java index e2c861fbc5e54..5486fe4ebd4ec 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/IndexWorkSyncTransactionApplicationStressIT.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/command/IndexWorkSyncTransactionApplicationStressIT.java @@ -102,7 +102,7 @@ public void shouldApplyIndexUpdatesInWorkSyncedBatches() throws Exception Dependencies dependencies = new Dependencies(); storageEngine.satisfyDependencies( dependencies ); IndexProxy index = dependencies.resolveDependency( IndexingService.class ) - .getIndexProxy( NewIndexDescriptorFactory.forSchema( descriptor ) ); + .getIndexProxy( descriptor ); awaitOnline( index ); // WHEN diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/storeview/NeoStoreIndexStoreViewTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/storeview/NeoStoreIndexStoreViewTest.java index 6264865c65075..954b0963bef09 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/storeview/NeoStoreIndexStoreViewTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/storeview/NeoStoreIndexStoreViewTest.java @@ -40,6 +40,7 @@ import org.neo4j.kernel.api.index.NodeUpdates; import org.neo4j.kernel.api.labelscan.NodeLabelUpdate; import org.neo4j.kernel.api.properties.Property; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.impl.api.index.StoreScan; import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge; @@ -190,10 +191,10 @@ public void processAllNodeProperties() throws Exception NodeUpdates propertyUpdates = propertyUpdateVisitor.getPropertyUpdates(); assertNotNull( "Visitor should containts container with updates.", propertyUpdates ); - assert propertyUpdates.forIndex( NewIndexDescriptorFactory.forLabel( 0, 0 ) ).isPresent(); - assert propertyUpdates.forIndex( NewIndexDescriptorFactory.forLabel( 0, 1 ) ).isPresent(); - assert propertyUpdates.forIndex( NewIndexDescriptorFactory.forLabel( 0, 0, 1 ) ).isPresent(); - assert !propertyUpdates.forIndex( NewIndexDescriptorFactory.forLabel( 1, 1 ) ).isPresent(); + assert propertyUpdates.forIndex( SchemaDescriptorFactory.forLabel( 0, 0 ) ).isPresent(); + assert propertyUpdates.forIndex( SchemaDescriptorFactory.forLabel( 0, 1 ) ).isPresent(); + assert propertyUpdates.forIndex( SchemaDescriptorFactory.forLabel( 0, 0, 1 ) ).isPresent(); + assert !propertyUpdates.forIndex( SchemaDescriptorFactory.forLabel( 1, 1 ) ).isPresent(); } NodeUpdates add( long nodeId, int propertyKeyId, Object value, long[] labels) diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureArgumentFormatterTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureArgumentFormatterTest.java index 9ae0d90c8a980..f19554ec92aaa 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureArgumentFormatterTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureArgumentFormatterTest.java @@ -65,7 +65,7 @@ public void shouldFormatDoubles() @Test public void shouldFormatIndexDescriptors() { - assertEquals( "IndexDescriptorFactory.of( 23, 42 )", + assertEquals( "NewIndexDescriptorFactory.forLabel( 23, 42 )", formatArgument( NewIndexDescriptorFactory.forLabel( 23, 42 ) ) ); } diff --git a/community/kernel/src/test/java/org/neo4j/unsafe/batchinsert/internal/BatchInsertTest.java b/community/kernel/src/test/java/org/neo4j/unsafe/batchinsert/internal/BatchInsertTest.java index 4d24bd785c872..d706289bd59dc 100644 --- a/community/kernel/src/test/java/org/neo4j/unsafe/batchinsert/internal/BatchInsertTest.java +++ b/community/kernel/src/test/java/org/neo4j/unsafe/batchinsert/internal/BatchInsertTest.java @@ -936,7 +936,7 @@ public void shouldRunIndexPopulationJobAtShutdown() throws Throwable verify( provider ).start(); verify( provider ).getPopulator( anyLong(), any( NewIndexDescriptor.class ), any( IndexSamplingConfig.class ) ); verify( populator ).create(); - verify( populator ).add( singletonList( IndexEntryUpdate.add( nodeId, internalIndex, "Jakewins" ) ) ); + verify( populator ).add( singletonList( IndexEntryUpdate.add( nodeId, internalIndex.schema(), "Jakewins" ) ) ); verify( populator ).verifyDeferredConstraints( any( PropertyAccessor.class ) ); verify( populator ).close( true ); verify( provider ).stop(); @@ -970,7 +970,7 @@ public void shouldRunConstraintPopulationJobAtShutdown() throws Throwable verify( provider ).start(); verify( provider ).getPopulator( anyLong(), any( NewIndexDescriptor.class ), any( IndexSamplingConfig.class ) ); verify( populator ).create(); - verify( populator ).add( singletonList( IndexEntryUpdate.add( nodeId, internalUniqueIndex, + verify( populator ).add( singletonList( IndexEntryUpdate.add( nodeId, internalUniqueIndex.schema(), "Jakewins" ) ) ); verify( populator ).verifyDeferredConstraints( any( PropertyAccessor.class ) ); verify( populator ).close( true ); @@ -1005,8 +1005,8 @@ public void shouldRepopulatePreexistingIndexed() throws Throwable verify( provider ).start(); verify( provider ).getPopulator( anyLong(), any( NewIndexDescriptor.class ), any( IndexSamplingConfig.class ) ); verify( populator ).create(); - verify( populator ).add( singletonList( IndexEntryUpdate.add( jakewins, internalIndex, "Jakewins" ) ) ); - verify( populator ).add( singletonList( IndexEntryUpdate.add( boggle, internalIndex, "b0ggl3" ) ) ); + verify( populator ).add( singletonList( IndexEntryUpdate.add( jakewins, internalIndex.schema(), "Jakewins" ) ) ); + verify( populator ).add( singletonList( IndexEntryUpdate.add( boggle, internalIndex.schema(), "b0ggl3" ) ) ); verify( populator ).verifyDeferredConstraints( any( PropertyAccessor.class ) ); verify( populator ).close( true ); verify( provider ).stop(); diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneSchemaIndexPopulationIT.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneSchemaIndexPopulationIT.java index 69274c6d2b247..2915ebdd77065 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneSchemaIndexPopulationIT.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneSchemaIndexPopulationIT.java @@ -138,6 +138,6 @@ private void generateUpdates( LuceneIndexAccessor indexAccessor, int nodesToUpda private IndexEntryUpdate add( long nodeId, Object value ) { - return IndexEntryUpdate.add( nodeId, descriptor, value ); + return IndexEntryUpdate.add( nodeId, descriptor.schema(), value ); } } diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/AccessUniqueDatabaseIndexTest.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/AccessUniqueDatabaseIndexTest.java index 2ca81f19ea96f..59ee996ff978f 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/AccessUniqueDatabaseIndexTest.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/AccessUniqueDatabaseIndexTest.java @@ -149,17 +149,17 @@ private PartitionedIndexStorage getIndexStorage() throws IOException private IndexEntryUpdate add( long nodeId, Object propertyValue ) { - return IndexEntryUpdate.add( nodeId, index, propertyValue ); + return IndexEntryUpdate.add( nodeId, index.schema(), propertyValue ); } private IndexEntryUpdate change( long nodeId, Object oldValue, Object newValue ) { - return IndexEntryUpdate.change( nodeId, index, oldValue, newValue ); + return IndexEntryUpdate.change( nodeId, index.schema(), oldValue, newValue ); } private IndexEntryUpdate remove( long nodeId, Object oldValue ) { - return IndexEntryUpdate.remove( nodeId, index, oldValue ); + return IndexEntryUpdate.remove( nodeId, index.schema(), oldValue ); } private List getAllNodes( PartitionedIndexStorage indexStorage, String propertyValue ) throws IOException diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/DatabaseCompositeIndexAccessorTest.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/DatabaseCompositeIndexAccessorTest.java index 27a776d99e98f..f3dddb80f3ec6 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/DatabaseCompositeIndexAccessorTest.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/DatabaseCompositeIndexAccessorTest.java @@ -260,17 +260,17 @@ public Void apply( Void nothing ) throws IOException private IndexEntryUpdate add( long nodeId, Object... values ) { - return IndexEntryUpdate.add( nodeId, indexDescriptor, values ); + return IndexEntryUpdate.add( nodeId, indexDescriptor.schema(), values ); } private IndexEntryUpdate remove( long nodeId, Object... values ) { - return IndexEntryUpdate.remove( nodeId, indexDescriptor, values ); + return IndexEntryUpdate.remove( nodeId, indexDescriptor.schema(), values ); } private IndexEntryUpdate change( long nodeId, Object[] valuesBefore, Object[] valuesAfter ) { - return IndexEntryUpdate.change( nodeId, indexDescriptor, valuesBefore, valuesAfter ); + return IndexEntryUpdate.change( nodeId, indexDescriptor.schema(), valuesBefore, valuesAfter ); } private void updateAndCommit( List nodePropertyUpdates ) diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/DatabaseIndexAccessorTest.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/DatabaseIndexAccessorTest.java index fb8e865b2aefc..e73ce330b7f2c 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/DatabaseIndexAccessorTest.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/DatabaseIndexAccessorTest.java @@ -324,17 +324,17 @@ public void shouldStopSamplingWhenIndexIsDropped() throws Exception private IndexEntryUpdate add( long nodeId, Object value ) { - return IndexEntryUpdate.add( nodeId, indexDescriptor, value ); + return IndexEntryUpdate.add( nodeId, indexDescriptor.schema(), value ); } private IndexEntryUpdate remove( long nodeId, Object value ) { - return IndexEntryUpdate.remove( nodeId, indexDescriptor, value ); + return IndexEntryUpdate.remove( nodeId, indexDescriptor.schema(), value ); } private IndexEntryUpdate change( long nodeId, Object valueBefore, Object valueAfter ) { - return IndexEntryUpdate.change( nodeId, indexDescriptor, valueBefore, valueAfter ); + return IndexEntryUpdate.change( nodeId, indexDescriptor.schema(), valueBefore, valueAfter ); } private void updateAndCommit( List nodePropertyUpdates ) diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexIT.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexIT.java index 0f84a8ae1c365..35823ff6c25fd 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexIT.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexIT.java @@ -309,7 +309,7 @@ private void generateUpdates( LuceneIndexAccessor indexAccessor, int nodesToUpda private IndexEntryUpdate add( long nodeId, Object value ) { - return IndexEntryUpdate.add( nodeId, descriptor, value ); + return IndexEntryUpdate.add( nodeId, descriptor.schema(), value ); } } diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexPopulatorTest.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexPopulatorTest.java index f7a0b0a96da57..802e8a8c82839 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexPopulatorTest.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/LuceneSchemaIndexPopulatorTest.java @@ -255,17 +255,17 @@ private static class Hit private IndexEntryUpdate add( long nodeId, Object value ) { - return IndexEntryUpdate.add( nodeId, index, value ); + return IndexEntryUpdate.add( nodeId, index.schema(), value ); } private IndexEntryUpdate change( long nodeId, Object valueBefore, Object valueAfter ) { - return IndexEntryUpdate.change( nodeId, index, valueBefore, valueAfter ); + return IndexEntryUpdate.change( nodeId, index.schema(), valueBefore, valueAfter ); } private IndexEntryUpdate remove( long nodeId, Object removedValue ) { - return IndexEntryUpdate.remove( nodeId, index, removedValue ); + return IndexEntryUpdate.remove( nodeId, index.schema(), removedValue ); } private void assertIndexedValues( Hit... expectedHits ) throws IOException @@ -297,7 +297,7 @@ private void switchToVerification() throws IOException private static void addUpdate( IndexPopulator populator, long nodeId, Object value ) throws IOException, IndexEntryConflictException { - populator.add( Collections.singletonList( IndexEntryUpdate.add( nodeId, index, value ) ) ); + populator.add( Collections.singletonList( IndexEntryUpdate.add( nodeId, index.schema(), value ) ) ); } private static void updatePopulator( diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/NonUniqueDatabaseIndexPopulatingUpdaterTest.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/NonUniqueDatabaseIndexPopulatingUpdaterTest.java index 153dee54cbb7a..63bb635360ecf 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/NonUniqueDatabaseIndexPopulatingUpdaterTest.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/NonUniqueDatabaseIndexPopulatingUpdaterTest.java @@ -27,8 +27,8 @@ import org.neo4j.collection.primitive.PrimitiveLongCollections; import org.neo4j.kernel.api.impl.schema.LuceneDocumentStructure; import org.neo4j.kernel.api.impl.schema.writer.LuceneIndexWriter; -import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; -import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.impl.api.index.sampling.DefaultNonUniqueIndexSampler; import org.neo4j.kernel.impl.api.index.sampling.NonUniqueIndexSampler; import org.neo4j.storageengine.api.schema.IndexSample; @@ -49,9 +49,10 @@ public class NonUniqueDatabaseIndexPopulatingUpdaterTest { - private static final NewIndexDescriptor index = NewIndexDescriptorFactory.forLabel( 1, 42 ); + private static final LabelSchemaDescriptor SCHEMA_DESCRIPTOR = SchemaDescriptorFactory.forLabel( 1, 42 ); private static final int SAMPLING_BUFFER_SIZE_LIMIT = 100; - private final NewIndexDescriptor compositeIndex = NewIndexDescriptorFactory.forLabel( 1, 42, 43 ); + private static final LabelSchemaDescriptor COMPOSITE_SCHEMA_DESCRIPTOR = SchemaDescriptorFactory + .forLabel( 1, 42, 43 ); @Test public void removeNotSupported() @@ -75,10 +76,10 @@ public void addedNodePropertiesIncludedInSample() throws Exception NonUniqueIndexSampler sampler = newSampler(); NonUniqueLuceneIndexPopulatingUpdater updater = newUpdater( sampler ); - updater.process( add( 1, index, "foo" ) ); - updater.process( add( 2, index, "bar" ) ); - updater.process( add( 3, index, "baz" ) ); - updater.process( add( 4, index, "bar" ) ); + updater.process( add( 1, SCHEMA_DESCRIPTOR, "foo" ) ); + updater.process( add( 2, SCHEMA_DESCRIPTOR, "bar" ) ); + updater.process( add( 3, SCHEMA_DESCRIPTOR, "baz" ) ); + updater.process( add( 4, SCHEMA_DESCRIPTOR, "bar" ) ); verifySamplingResult( sampler, 4, 3, 4 ); } @@ -88,10 +89,10 @@ public void addedNodeCompositePropertiesIncludedInSample() throws Exception { NonUniqueIndexSampler sampler = newSampler(); NonUniqueLuceneIndexPopulatingUpdater updater = newUpdater( sampler ); - updater.process( add( 1, compositeIndex, "bit", "foo" ) ); - updater.process( add( 2, compositeIndex, "bit", "bar" ) ); - updater.process( add( 3, compositeIndex, "bit", "baz" ) ); - updater.process( add( 4, compositeIndex, "bit", "bar" ) ); + updater.process( add( 1, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "foo" ) ); + updater.process( add( 2, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "bar" ) ); + updater.process( add( 3, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "baz" ) ); + updater.process( add( 4, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "bar" ) ); verifySamplingResult( sampler, 4, 3, 4 ); } @@ -102,12 +103,12 @@ public void changedNodePropertiesIncludedInSample() throws Exception NonUniqueIndexSampler sampler = newSampler(); NonUniqueLuceneIndexPopulatingUpdater updater = newUpdater( sampler ); - updater.process( add( 1, index, "initial1" ) ); - updater.process( add( 2, index, "initial2" ) ); - updater.process( add( 3, index, "new2" ) ); + updater.process( add( 1, SCHEMA_DESCRIPTOR, "initial1" ) ); + updater.process( add( 2, SCHEMA_DESCRIPTOR, "initial2" ) ); + updater.process( add( 3, SCHEMA_DESCRIPTOR, "new2" ) ); - updater.process( change( 1, index, "initial1", "new1" ) ); - updater.process( change( 1, index, "initial2", "new2" ) ); + updater.process( change( 1, SCHEMA_DESCRIPTOR, "initial1", "new1" ) ); + updater.process( change( 1, SCHEMA_DESCRIPTOR, "initial2", "new2" ) ); verifySamplingResult( sampler, 3, 2, 3 ); } @@ -118,12 +119,14 @@ public void changedNodeCompositePropertiesIncludedInSample() throws Exception NonUniqueIndexSampler sampler = newSampler(); NonUniqueLuceneIndexPopulatingUpdater updater = newUpdater( sampler ); - updater.process( add( 1, compositeIndex, "bit", "initial1" ) ); - updater.process( add( 2, compositeIndex, "bit", "initial2" ) ); - updater.process( add( 3, compositeIndex, "bit", "new2" ) ); + updater.process( add( 1, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "initial1" ) ); + updater.process( add( 2, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "initial2" ) ); + updater.process( add( 3, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "new2" ) ); - updater.process( change( 1, compositeIndex, new Object[]{"bit", "initial1"}, new Object[]{"bit", "new1"} ) ); - updater.process( change( 1, compositeIndex, new Object[]{"bit", "initial2"}, new Object[]{"bit", "new2"} ) ); + updater.process( change( 1, + COMPOSITE_SCHEMA_DESCRIPTOR, new Object[]{"bit", "initial1"}, new Object[]{"bit", "new1"} ) ); + updater.process( change( 1, + COMPOSITE_SCHEMA_DESCRIPTOR, new Object[]{"bit", "initial2"}, new Object[]{"bit", "new2"} ) ); verifySamplingResult( sampler, 3, 2, 3 ); } @@ -134,14 +137,14 @@ public void removedNodePropertyIncludedInSample() throws Exception NonUniqueIndexSampler sampler = newSampler(); NonUniqueLuceneIndexPopulatingUpdater updater = newUpdater( sampler ); - updater.process( add( 1, index, "foo" ) ); - updater.process( add( 2, index, "bar" ) ); - updater.process( add( 3, index, "baz" ) ); - updater.process( add( 4, index, "qux" ) ); + updater.process( add( 1, SCHEMA_DESCRIPTOR, "foo" ) ); + updater.process( add( 2, SCHEMA_DESCRIPTOR, "bar" ) ); + updater.process( add( 3, SCHEMA_DESCRIPTOR, "baz" ) ); + updater.process( add( 4, SCHEMA_DESCRIPTOR, "qux" ) ); - updater.process( remove( 1, index, "foo" ) ); - updater.process( remove( 2, index, "bar" ) ); - updater.process( remove( 4, index, "qux" ) ); + updater.process( remove( 1, SCHEMA_DESCRIPTOR, "foo" ) ); + updater.process( remove( 2, SCHEMA_DESCRIPTOR, "bar" ) ); + updater.process( remove( 4, SCHEMA_DESCRIPTOR, "qux" ) ); verifySamplingResult( sampler, 1, 1, 1 ); } @@ -152,14 +155,14 @@ public void removedNodeCompositePropertyIncludedInSample() throws Exception NonUniqueIndexSampler sampler = newSampler(); NonUniqueLuceneIndexPopulatingUpdater updater = newUpdater( sampler ); - updater.process( add( 1, compositeIndex, "bit", "foo" ) ); - updater.process( add( 2, compositeIndex, "bit", "bar" ) ); - updater.process( add( 3, compositeIndex, "bit", "baz" ) ); - updater.process( add( 4, compositeIndex, "bit", "qux" ) ); + updater.process( add( 1, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "foo" ) ); + updater.process( add( 2, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "bar" ) ); + updater.process( add( 3, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "baz" ) ); + updater.process( add( 4, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "qux" ) ); - updater.process( remove( 1, compositeIndex, "bit", "foo" ) ); - updater.process( remove( 2, compositeIndex, "bit", "bar" ) ); - updater.process( remove( 4, compositeIndex, "bit", "qux" ) ); + updater.process( remove( 1, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "foo" ) ); + updater.process( remove( 2, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "bar" ) ); + updater.process( remove( 4, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "qux" ) ); verifySamplingResult( sampler, 1, 1, 1 ); } @@ -170,19 +173,19 @@ public void nodePropertyUpdatesIncludedInSample() throws Exception NonUniqueIndexSampler sampler = newSampler(); NonUniqueLuceneIndexPopulatingUpdater updater = newUpdater( sampler ); - updater.process( add( 1, index, "foo" ) ); - updater.process( change( 1, index, "foo", "newFoo1" ) ); + updater.process( add( 1, SCHEMA_DESCRIPTOR, "foo" ) ); + updater.process( change( 1, SCHEMA_DESCRIPTOR, "foo", "newFoo1" ) ); - updater.process( add( 2, index, "bar" ) ); - updater.process( remove( 2, index, "bar" ) ); + updater.process( add( 2, SCHEMA_DESCRIPTOR, "bar" ) ); + updater.process( remove( 2, SCHEMA_DESCRIPTOR, "bar" ) ); - updater.process( change( 1, index, "newFoo1", "newFoo2" ) ); + updater.process( change( 1, SCHEMA_DESCRIPTOR, "newFoo1", "newFoo2" ) ); - updater.process( add( 42, index, "qux" ) ); - updater.process( add( 3, index, "bar" ) ); - updater.process( add( 4, index, "baz" ) ); - updater.process( add( 5, index, "bar" ) ); - updater.process( remove( 42, index, "qux" ) ); + updater.process( add( 42, SCHEMA_DESCRIPTOR, "qux" ) ); + updater.process( add( 3, SCHEMA_DESCRIPTOR, "bar" ) ); + updater.process( add( 4, SCHEMA_DESCRIPTOR, "baz" ) ); + updater.process( add( 5, SCHEMA_DESCRIPTOR, "bar" ) ); + updater.process( remove( 42, SCHEMA_DESCRIPTOR, "qux" ) ); verifySamplingResult( sampler, 4, 3, 4 ); } @@ -193,19 +196,21 @@ public void nodeCompositePropertyUpdatesIncludedInSample() throws Exception NonUniqueIndexSampler sampler = newSampler(); NonUniqueLuceneIndexPopulatingUpdater updater = newUpdater( sampler ); - updater.process( add( 1, compositeIndex, "bit", "foo" ) ); - updater.process( change( 1, compositeIndex, new Object[]{"bit", "foo"}, new Object[]{"bit", "newFoo1"} ) ); + updater.process( add( 1, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "foo" ) ); + updater.process( change( 1, + COMPOSITE_SCHEMA_DESCRIPTOR, new Object[]{"bit", "foo"}, new Object[]{"bit", "newFoo1"} ) ); - updater.process( add( 2, compositeIndex, "bit", "bar" ) ); - updater.process( remove( 2, compositeIndex, "bit", "bar" ) ); + updater.process( add( 2, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "bar" ) ); + updater.process( remove( 2, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "bar" ) ); - updater.process( change( 1, compositeIndex, new Object[]{"bit", "newFoo1"}, new Object[]{"bit", "newFoo2"} ) ); + updater.process( change( 1, + COMPOSITE_SCHEMA_DESCRIPTOR, new Object[]{"bit", "newFoo1"}, new Object[]{"bit", "newFoo2"} ) ); - updater.process( add( 42, compositeIndex, "bit", "qux" ) ); - updater.process( add( 3, compositeIndex, "bit", "bar" ) ); - updater.process( add( 4, compositeIndex, "bit", "baz" ) ); - updater.process( add( 5, compositeIndex, "bit", "bar" ) ); - updater.process( remove( 42, compositeIndex, "bit", "qux" ) ); + updater.process( add( 42, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "qux" ) ); + updater.process( add( 3, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "bar" ) ); + updater.process( add( 4, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "baz" ) ); + updater.process( add( 5, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "bar" ) ); + updater.process( remove( 42, COMPOSITE_SCHEMA_DESCRIPTOR, "bit", "qux" ) ); verifySamplingResult( sampler, 4, 3, 4 ); } @@ -222,16 +227,16 @@ public void additionsDeliveredToIndexWriter() throws Exception String expectedString4 = LuceneDocumentStructure.documentRepresentingProperties( (long) 4, "git", "bit" ) .toString(); - updater.process( add( 1, index, "foo" ) ); + updater.process( add( 1, SCHEMA_DESCRIPTOR, "foo" ) ); verifydocument( writer, newTermForChangeOrRemove( 1 ), expectedString1 ); - updater.process( add( 2, index, "bar" ) ); + updater.process( add( 2, SCHEMA_DESCRIPTOR, "bar" ) ); verifydocument( writer, newTermForChangeOrRemove( 2 ), expectedString2 ); - updater.process( add( 3, index, "qux" ) ); + updater.process( add( 3, SCHEMA_DESCRIPTOR, "qux" ) ); verifydocument( writer, newTermForChangeOrRemove( 3 ), expectedString3 ); - updater.process( add( 4, compositeIndex, "git", "bit" ) ); + updater.process( add( 4, COMPOSITE_SCHEMA_DESCRIPTOR, "git", "bit" ) ); verifydocument( writer, newTermForChangeOrRemove( 4 ), expectedString4 ); } @@ -248,13 +253,14 @@ public void changesDeliveredToIndexWriter() throws Exception String expectedString3 = LuceneDocumentStructure.documentRepresentingProperties( (long) 3, "bit", "after2" ) .toString(); - updater.process( change( 1, index, "before1", "after1" ) ); + updater.process( change( 1, SCHEMA_DESCRIPTOR, "before1", "after1" ) ); verifydocument( writer, newTermForChangeOrRemove( 1 ), expectedString1 ); - updater.process( change( 2, index, "before2", "after2" ) ); + updater.process( change( 2, SCHEMA_DESCRIPTOR, "before2", "after2" ) ); verifydocument( writer, newTermForChangeOrRemove( 2 ), expectedString2 ); - updater.process( change( 3, compositeIndex, new Object[]{"bit", "before2"}, new Object[]{"bit", "after2"} ) ); + updater.process( change( 3, + COMPOSITE_SCHEMA_DESCRIPTOR, new Object[]{"bit", "before2"}, new Object[]{"bit", "after2"} ) ); verifydocument( writer, newTermForChangeOrRemove( 3 ), expectedString3 ); } @@ -269,16 +275,16 @@ public void removalsDeliveredToIndexWriter() throws Exception LuceneIndexWriter writer = mock( LuceneIndexWriter.class ); NonUniqueLuceneIndexPopulatingUpdater updater = newUpdater( writer ); - updater.process( remove( 1, index, "foo" ) ); + updater.process( remove( 1, SCHEMA_DESCRIPTOR, "foo" ) ); verify( writer ).deleteDocuments( newTermForChangeOrRemove( 1 ) ); - updater.process( remove( 2, index, "bar" ) ); + updater.process( remove( 2, SCHEMA_DESCRIPTOR, "bar" ) ); verify( writer ).deleteDocuments( newTermForChangeOrRemove( 2 ) ); - updater.process( remove( 3, index, "baz" ) ); + updater.process( remove( 3, SCHEMA_DESCRIPTOR, "baz" ) ); verify( writer ).deleteDocuments( newTermForChangeOrRemove( 3 ) ); - updater.process( remove( 4, index, "bit", "baz" ) ); + updater.process( remove( 4, SCHEMA_DESCRIPTOR, "bit", "baz" ) ); verify( writer ).deleteDocuments( newTermForChangeOrRemove( 4 ) ); } diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/NonUniqueDatabaseIndexPopulatorTest.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/NonUniqueDatabaseIndexPopulatorTest.java index 896353361615d..ff71911aad458 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/NonUniqueDatabaseIndexPopulatorTest.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/NonUniqueDatabaseIndexPopulatorTest.java @@ -38,7 +38,8 @@ import org.neo4j.kernel.api.impl.schema.SchemaIndex; import org.neo4j.kernel.api.index.IndexEntryUpdate; import org.neo4j.kernel.api.schema_new.IndexQuery; -import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig; @@ -61,7 +62,7 @@ public class NonUniqueDatabaseIndexPopulatorTest private SchemaIndex index; private NonUniqueLuceneIndexPopulator populator; - private NewIndexDescriptor indexDescriptor = NewIndexDescriptorFactory.forLabel( 0, 0 ); + private LabelSchemaDescriptor labelSchemaDescriptor = SchemaDescriptorFactory.forLabel( 0, 0 ); @Before public void setUp() throws Exception @@ -70,7 +71,7 @@ public void setUp() throws Exception PartitionedIndexStorage indexStorage = new PartitionedIndexStorage( dirFactory, fileSystemRule.get(), folder, "testIndex", false ); - index = LuceneSchemaIndexBuilder.create( indexDescriptor ) + index = LuceneSchemaIndexBuilder.create( NewIndexDescriptorFactory.forSchema( labelSchemaDescriptor ) ) .withIndexStorage( indexStorage ) .build(); } @@ -101,9 +102,9 @@ public void sampleIncludedUpdates() throws Exception populator = newPopulator(); List updates = Arrays.asList( - IndexEntryUpdate.add( 1, indexDescriptor, "aaa" ), - IndexEntryUpdate.add( 2, indexDescriptor, "bbb" ), - IndexEntryUpdate.add( 3, indexDescriptor, "ccc" ) ); + IndexEntryUpdate.add( 1, labelSchemaDescriptor, "aaa" ), + IndexEntryUpdate.add( 2, labelSchemaDescriptor, "bbb" ), + IndexEntryUpdate.add( 3, labelSchemaDescriptor, "ccc" ) ); updates.forEach( populator::includeSample ); @@ -118,9 +119,9 @@ public void sampleIncludedUpdatesWithDuplicates() throws Exception populator = newPopulator(); List updates = Arrays.asList( - IndexEntryUpdate.add( 1, indexDescriptor, "foo" ), - IndexEntryUpdate.add( 2, indexDescriptor, "bar" ), - IndexEntryUpdate.add( 3, indexDescriptor, "foo" ) ); + IndexEntryUpdate.add( 1, labelSchemaDescriptor, "foo" ), + IndexEntryUpdate.add( 2, labelSchemaDescriptor, "bar" ), + IndexEntryUpdate.add( 3, labelSchemaDescriptor, "foo" ) ); updates.forEach( populator::includeSample ); @@ -135,16 +136,16 @@ public void addUpdates() throws Exception populator = newPopulator(); List updates = Arrays.asList( - IndexEntryUpdate.add( 1, indexDescriptor, "foo" ), - IndexEntryUpdate.add( 2, indexDescriptor, "bar" ), - IndexEntryUpdate.add( 42, indexDescriptor, "bar" ) ); + IndexEntryUpdate.add( 1, labelSchemaDescriptor, "foo" ), + IndexEntryUpdate.add( 2, labelSchemaDescriptor, "bar" ), + IndexEntryUpdate.add( 42, labelSchemaDescriptor, "bar" ) ); populator.add( updates ); index.maybeRefreshBlocking(); try ( IndexReader reader = index.getIndexReader() ) { - int propertyKeyId = indexDescriptor.schema().getPropertyId(); + int propertyKeyId = labelSchemaDescriptor.getPropertyId(); PrimitiveLongIterator allEntities = reader.query( IndexQuery.exists( propertyKeyId ) ); assertArrayEquals( new long[]{1, 2, 42}, PrimitiveLongCollections.asArray( allEntities ) ); } diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/UniqueDatabaseIndexPopulatingUpdaterTest.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/UniqueDatabaseIndexPopulatingUpdaterTest.java index bc6f5576c8cbe..a6dcb703283bc 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/UniqueDatabaseIndexPopulatingUpdaterTest.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/UniqueDatabaseIndexPopulatingUpdaterTest.java @@ -29,6 +29,8 @@ import org.neo4j.kernel.api.impl.schema.SchemaIndex; import org.neo4j.kernel.api.impl.schema.writer.LuceneIndexWriter; import org.neo4j.kernel.api.index.PropertyAccessor; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.impl.api.index.sampling.UniqueIndexSampler; @@ -50,7 +52,7 @@ public class UniqueDatabaseIndexPopulatingUpdaterTest { - private static final NewIndexDescriptor descriptor = NewIndexDescriptorFactory.forLabel( 1, 42 ); + private static final LabelSchemaDescriptor descriptor = SchemaDescriptorFactory.forLabel( 1, 42 ); @Test public void removeNotSupported() @@ -81,7 +83,7 @@ public void closeVerifiesUniquenessOfAddedValues() throws Exception verifyZeroInteractions( index ); updater.close(); - verify( index ).verifyUniqueness( any(), eq( descriptor.schema().getPropertyId() ), eq( Arrays.asList( "foo", "bar", "baz" ) ) ); + verify( index ).verifyUniqueness( any(), eq( descriptor.getPropertyId() ), eq( Arrays.asList( "foo", "bar", "baz" ) ) ); } @Test @@ -97,7 +99,7 @@ public void closeVerifiesUniquenessOfChangedValues() throws Exception verifyZeroInteractions( index ); updater.close(); - verify( index ).verifyUniqueness( any(), eq( descriptor.schema().getPropertyId() ), eq( Arrays.asList( "foo2", "bar2", "baz2" ) ) ); + verify( index ).verifyUniqueness( any(), eq( descriptor.getPropertyId() ), eq( Arrays.asList( "foo2", "bar2", "baz2" ) ) ); } @Test @@ -117,7 +119,7 @@ public void closeVerifiesUniquenessOfAddedAndChangedValues() throws Exception updater.close(); List toBeVerified = Arrays.asList( "added1", "added2", "after1", "after2" ); - verify( index ).verifyUniqueness( any(), eq( descriptor.schema().getPropertyId() ), eq( toBeVerified ) ); + verify( index ).verifyUniqueness( any(), eq( descriptor.getPropertyId() ), eq( toBeVerified ) ); } @Test @@ -256,7 +258,7 @@ private static UniqueLuceneIndexPopulatingUpdater newUpdater( UniqueIndexSampler private static UniqueLuceneIndexPopulatingUpdater newUpdater( SchemaIndex index, LuceneIndexWriter writer, UniqueIndexSampler sampler ) { - return new UniqueLuceneIndexPopulatingUpdater( writer, descriptor.schema().getPropertyId(), index, + return new UniqueLuceneIndexPopulatingUpdater( writer, descriptor.getPropertyId(), index, mock( PropertyAccessor.class ), sampler ); } } diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/UniqueDatabaseIndexPopulatorTest.java b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/UniqueDatabaseIndexPopulatorTest.java index ac6b54340b8fa..645dc4bbaa789 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/UniqueDatabaseIndexPopulatorTest.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/schema/populator/UniqueDatabaseIndexPopulatorTest.java @@ -44,6 +44,8 @@ import org.neo4j.kernel.api.index.IndexUpdater; import org.neo4j.kernel.api.index.PropertyAccessor; import org.neo4j.kernel.api.schema_new.IndexQuery; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.storageengine.api.schema.IndexReader; @@ -80,13 +82,15 @@ public class UniqueDatabaseIndexPopulatorTest private static final String INDEX_IDENTIFIER = "42"; private final DirectoryFactory directoryFactory = new DirectoryFactory.InMemoryDirectoryFactory(); - private static final NewIndexDescriptor descriptor = NewIndexDescriptorFactory.forLabel( LABEL_ID, PROPERTY_KEY_ID ); + private static final NewIndexDescriptor descriptor = NewIndexDescriptorFactory + .forLabel( LABEL_ID, PROPERTY_KEY_ID ); private final PropertyAccessor propertyAccessor = mock( PropertyAccessor.class ); private PartitionedIndexStorage indexStorage; private SchemaIndex index; private UniqueLuceneIndexPopulator populator; + private LabelSchemaDescriptor schemaDescriptor; @Before public void setUp() throws Exception @@ -97,6 +101,7 @@ public void setUp() throws Exception index = LuceneSchemaIndexBuilder.create( descriptor ) .withIndexStorage( indexStorage ) .build(); + schemaDescriptor = descriptor.schema(); } @After @@ -146,7 +151,7 @@ public void shouldUpdateEntryForNodeThatHasAlreadyBeenIndexed() throws Exception // when IndexUpdater updater = populator.newPopulatingUpdater( propertyAccessor ); - updater.process( IndexEntryUpdate.change( 1, descriptor, "value1", "value2" ) ); + updater.process( IndexEntryUpdate.change( 1, schemaDescriptor, "value1", "value2" ) ); populator.close( true ); @@ -166,8 +171,8 @@ public void shouldUpdateEntryForNodeThatHasPropertyRemovedAndThenAddedAgain() th // when IndexUpdater updater = populator.newPopulatingUpdater( propertyAccessor ); - updater.process( IndexEntryUpdate.remove( 1, descriptor, "value1" ) ); - updater.process( IndexEntryUpdate.add( 1, descriptor, "value1" ) ); + updater.process( IndexEntryUpdate.remove( 1, schemaDescriptor, "value1" ) ); + updater.process( IndexEntryUpdate.add( 1, schemaDescriptor, "value1" ) ); populator.close( true ); @@ -186,7 +191,7 @@ public void shouldRemoveEntryForNodeThatHasAlreadyBeenIndexed() throws Exception // when IndexUpdater updater = populator.newPopulatingUpdater( propertyAccessor ); - updater.process( IndexEntryUpdate.remove( 1, descriptor, "value1" ) ); + updater.process( IndexEntryUpdate.remove( 1, schemaDescriptor, "value1" ) ); populator.close( true ); @@ -206,8 +211,8 @@ public void shouldBeAbleToHandleSwappingOfIndexValues() throws Exception // when IndexUpdater updater = populator.newPopulatingUpdater( propertyAccessor ); - updater.process( IndexEntryUpdate.change( 1, descriptor, "value1", "value2" ) ); - updater.process( IndexEntryUpdate.change( 2, descriptor, "value2", "value1" ) ); + updater.process( IndexEntryUpdate.change( 1, schemaDescriptor, "value1", "value2" ) ); + updater.process( IndexEntryUpdate.change( 2, schemaDescriptor, "value2", "value1" ) ); populator.close( true ); @@ -295,7 +300,7 @@ public void shouldRejectDuplicateEntryWhenUsingPopulatingUpdater() throws Except try { IndexUpdater updater = populator.newPopulatingUpdater( propertyAccessor ); - updater.process( IndexEntryUpdate.add( 3, descriptor, "value1" ) ); + updater.process( IndexEntryUpdate.add( 3, schemaDescriptor, "value1" ) ); updater.close(); fail( "should have thrown exception" ); @@ -317,7 +322,7 @@ public void shouldRejectDuplicateEntryAfterUsingPopulatingUpdater() throws Excep String value = "value1"; IndexUpdater updater = populator.newPopulatingUpdater( propertyAccessor ); - updater.process( IndexEntryUpdate.add( 1, descriptor, value ) ); + updater.process( IndexEntryUpdate.add( 1, schemaDescriptor, value ) ); addUpdate( populator, 2, value ); when( propertyAccessor.getProperty( 1, PROPERTY_KEY_ID ) ).thenReturn( @@ -351,8 +356,8 @@ public void shouldNotRejectDuplicateEntryOnSameNodeIdAfterUsingPopulatingUpdater stringProperty( PROPERTY_KEY_ID, "value1" ) ); IndexUpdater updater = populator.newPopulatingUpdater( propertyAccessor ); - updater.process( IndexEntryUpdate.add( 1, descriptor, "value1" ) ); - updater.process( IndexEntryUpdate.change( 1, descriptor, "value1", "value1" ) ); + updater.process( IndexEntryUpdate.add( 1, schemaDescriptor, "value1" ) ); + updater.process( IndexEntryUpdate.change( 1, schemaDescriptor, "value1", "value1" ) ); updater.close(); addUpdate( populator, 2, "value2" ); addUpdate( populator, 3, "value3" ); @@ -399,13 +404,13 @@ public void shouldCheckAllCollisionsFromPopulatorAdd() throws Exception for ( int nodeId = 0; nodeId < iterations; nodeId++ ) { - updater.process( IndexEntryUpdate.add( nodeId, descriptor, 1 ) ); + updater.process( IndexEntryUpdate.add( nodeId, schemaDescriptor, 1 ) ); when( propertyAccessor.getProperty( nodeId, PROPERTY_KEY_ID ) ).thenReturn( intProperty( PROPERTY_KEY_ID, nodeId ) ); } // ... and the actual conflicting property: - updater.process( IndexEntryUpdate.add( iterations, descriptor, 1 ) ); + updater.process( IndexEntryUpdate.add( iterations, schemaDescriptor, 1 ) ); when( propertyAccessor.getProperty( iterations, PROPERTY_KEY_ID ) ).thenReturn( intProperty( PROPERTY_KEY_ID, 1 ) ); // This collision is real!!! @@ -507,13 +512,13 @@ public void sampleEmptyIndex() throws Exception @Test public void sampleIncludedUpdates() throws Exception { - NewIndexDescriptor indexDescriptor = NewIndexDescriptorFactory.forLabel( 1, 1 ); + LabelSchemaDescriptor schemaDescriptor = SchemaDescriptorFactory.forLabel( 1, 1 ); populator = newPopulator(); List updates = Arrays.asList( - IndexEntryUpdate.add( 1, indexDescriptor, "foo" ), - IndexEntryUpdate.add( 2, indexDescriptor, "bar" ), - IndexEntryUpdate.add( 3, indexDescriptor, "baz" ), - IndexEntryUpdate.add( 4, indexDescriptor, "qux" ) ); + IndexEntryUpdate.add( 1, schemaDescriptor, "foo" ), + IndexEntryUpdate.add( 2, schemaDescriptor, "bar" ), + IndexEntryUpdate.add( 3, schemaDescriptor, "baz" ), + IndexEntryUpdate.add( 4, schemaDescriptor, "qux" ) ); updates.forEach( populator::includeSample ); @@ -525,13 +530,13 @@ public void sampleIncludedUpdates() throws Exception @Test public void addUpdates() throws Exception { - NewIndexDescriptor indexDescriptor = NewIndexDescriptorFactory.forLabel( 1, 1 ); + LabelSchemaDescriptor schemaDescriptor = SchemaDescriptorFactory.forLabel( 1, 1 ); populator = newPopulator(); List updates = Arrays.asList( - IndexEntryUpdate.add( 1, indexDescriptor, "aaa" ), - IndexEntryUpdate.add( 2, indexDescriptor, "bbb" ), - IndexEntryUpdate.add( 3, indexDescriptor, "ccc" ) ); + IndexEntryUpdate.add( 1, schemaDescriptor, "aaa" ), + IndexEntryUpdate.add( 2, schemaDescriptor, "bbb" ), + IndexEntryUpdate.add( 3, schemaDescriptor, "ccc" ) ); populator.add( updates ); @@ -554,7 +559,7 @@ private static void addUpdate( UniqueLuceneIndexPopulator populator, long nodeId throws IOException, IndexEntryConflictException { NewIndexDescriptor indexDescriptor = NewIndexDescriptorFactory.forLabel( 0, 0 ); - IndexEntryUpdate update = IndexEntryUpdate.add( nodeId, indexDescriptor, value ); + IndexEntryUpdate update = IndexEntryUpdate.add( nodeId, indexDescriptor.schema(), value ); populator.add( Collections.singletonList( update ) ); } } diff --git a/community/lucene-index/src/test/java/org/neo4j/kernel/impl/api/index/IndexingServiceIntegrationTest.java b/community/lucene-index/src/test/java/org/neo4j/kernel/impl/api/index/IndexingServiceIntegrationTest.java index bc87be7d40c2c..c75da211ad625 100644 --- a/community/lucene-index/src/test/java/org/neo4j/kernel/impl/api/index/IndexingServiceIntegrationTest.java +++ b/community/lucene-index/src/test/java/org/neo4j/kernel/impl/api/index/IndexingServiceIntegrationTest.java @@ -36,7 +36,7 @@ import org.neo4j.kernel.api.impl.schema.LuceneSchemaIndexProviderFactory; import org.neo4j.kernel.api.index.InternalIndexState; import org.neo4j.kernel.api.index.SchemaIndexProvider; -import org.neo4j.kernel.api.schema.IndexDescriptorFactory; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.impl.core.LabelTokenHolder; import org.neo4j.kernel.impl.core.PropertyKeyTokenHolder; @@ -121,9 +121,9 @@ public void testSchemaIndexMatchIndexingService() throws IndexNotFoundKernelExce int propertyId = propertyKeyTokenHolder.getIdByName( PROPERTY_NAME ); IndexProxy clothesIndex = - indexingService.getIndexProxy( NewIndexDescriptorFactory.forLabel( clothedLabelId, propertyId ) ); + indexingService.getIndexProxy( SchemaDescriptorFactory.forLabel( clothedLabelId, propertyId ) ); IndexProxy weatherIndex = - indexingService.getIndexProxy( NewIndexDescriptorFactory.forLabel( weatherLabelId, propertyId ) ); + indexingService.getIndexProxy( SchemaDescriptorFactory.forLabel( weatherLabelId, propertyId ) ); assertEquals( InternalIndexState.ONLINE, clothesIndex.getState()); assertEquals( InternalIndexState.ONLINE, weatherIndex.getState()); } diff --git a/community/neo4j/src/test/java/org/neo4j/index/IndexSamplingIntegrationTest.java b/community/neo4j/src/test/java/org/neo4j/index/IndexSamplingIntegrationTest.java index 88a64456df11a..9f2195c3e2019 100644 --- a/community/neo4j/src/test/java/org/neo4j/index/IndexSamplingIntegrationTest.java +++ b/community/neo4j/src/test/java/org/neo4j/index/IndexSamplingIntegrationTest.java @@ -32,6 +32,7 @@ import org.neo4j.io.fs.FileUtils; import org.neo4j.kernel.api.ReadOperations; import org.neo4j.kernel.api.exceptions.index.IndexNotFoundKernelException; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.impl.api.index.IndexingService; import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge; @@ -195,7 +196,7 @@ private long indexId( GraphDatabaseAPI api ) throws IndexNotFoundKernelException .readOperations(); int labelId = readOperations.labelGetForName( label.name() ); int propertyKeyId = readOperations.propertyKeyGetForName( property ); - long indexId = indexingService.getIndexId( NewIndexDescriptorFactory.forLabel( labelId, propertyKeyId ) ); + long indexId = indexingService.getIndexId( SchemaDescriptorFactory.forLabel( labelId, propertyKeyId ) ); tx.success(); return indexId; } diff --git a/community/neo4j/src/test/java/schema/MultiIndexPopulationConcurrentUpdatesIT.java b/community/neo4j/src/test/java/schema/MultiIndexPopulationConcurrentUpdatesIT.java index fb9fe078b0d79..bca5df09459a0 100644 --- a/community/neo4j/src/test/java/schema/MultiIndexPopulationConcurrentUpdatesIT.java +++ b/community/neo4j/src/test/java/schema/MultiIndexPopulationConcurrentUpdatesIT.java @@ -51,6 +51,8 @@ import org.neo4j.kernel.api.index.SchemaIndexProvider; import org.neo4j.kernel.api.labelscan.LabelScanStore; import org.neo4j.kernel.api.labelscan.NodeLabelUpdate; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.configuration.Config; @@ -219,7 +221,7 @@ private long[] id( String label ) private IndexReader getIndexReader( int propertyId, Integer countryLabelId ) throws IndexNotFoundKernelException { - return indexService.getIndexProxy( NewIndexDescriptorFactory.forLabel( countryLabelId, propertyId ) ) + return indexService.getIndexProxy( SchemaDescriptorFactory.forLabel( countryLabelId, propertyId ) ) .newReader(); } @@ -287,7 +289,8 @@ private void waitIndexOnline( IndexingService indexService, int propertyId, int throws IndexNotFoundKernelException, IndexPopulationFailedKernelException, InterruptedException, IndexActivationFailedKernelException { - IndexProxy indexProxy = indexService.getIndexProxy( NewIndexDescriptorFactory.forLabel( labelId, propertyId ) ); + IndexProxy indexProxy = indexService.getIndexProxy( SchemaDescriptorFactory.forLabel( labelId, propertyId + ) ); indexProxy.awaitStoreScanCompleted(); indexProxy.activate(); } @@ -474,8 +477,9 @@ public long next() Node node = embeddedDatabase.getNodeById( update.getNodeId() ); for ( int labelId : labelsNameIdMap.values() ) { - NewIndexDescriptor descriptor = NewIndexDescriptorFactory.forLabel( labelId, propertyId ); - Optional indexEntryUpdateOptional = update.forIndex( descriptor ); + LabelSchemaDescriptor schemaDescriptor = SchemaDescriptorFactory + .forLabel( labelId, propertyId ); + Optional indexEntryUpdateOptional = update.forIndex( schemaDescriptor ); if ( indexEntryUpdateOptional.isPresent() ) { IndexEntryUpdate indexUpdate = indexEntryUpdateOptional.get(); @@ -484,12 +488,12 @@ public long next() case CHANGED: case ADDED: node.addLabel( - Label.label( labelsIdNameMap.get( descriptor.schema().getLabelId() ) ) ); + Label.label( labelsIdNameMap.get( schemaDescriptor.getLabelId() ) ) ); node.setProperty( NAME_PROPERTY, indexUpdate.values()[0] ); break; case REMOVED: node.addLabel( - Label.label( labelsIdNameMap.get( descriptor.schema().getLabelId() ) ) ); + Label.label( labelsIdNameMap.get( schemaDescriptor.getLabelId() ) ) ); node.delete(); break; default: diff --git a/community/shell/src/main/java/org/neo4j/shell/kernel/apps/Schema.java b/community/shell/src/main/java/org/neo4j/shell/kernel/apps/Schema.java index 29dd606ffe870..77a0ef4edc0bc 100644 --- a/community/shell/src/main/java/org/neo4j/shell/kernel/apps/Schema.java +++ b/community/shell/src/main/java/org/neo4j/shell/kernel/apps/Schema.java @@ -31,6 +31,7 @@ import org.neo4j.graphdb.schema.Schema.IndexState; import org.neo4j.kernel.api.exceptions.index.IndexNotFoundKernelException; import org.neo4j.kernel.api.Statement; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.impl.api.index.IndexingService; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingMode; @@ -196,7 +197,7 @@ private void sampleIndexes( Label[] labels, String property, boolean sampleAll, try { - indexingService.triggerIndexSampling( NewIndexDescriptorFactory.forLabel( labelKey, propertyKey ), + indexingService.triggerIndexSampling( SchemaDescriptorFactory.forLabel( labelKey, propertyKey ), samplingMode ); } catch ( IndexNotFoundKernelException e ) diff --git a/enterprise/ha/src/test/java/org/neo4j/kernel/ha/HaCountsIT.java b/enterprise/ha/src/test/java/org/neo4j/kernel/ha/HaCountsIT.java index f4953a2798f86..a4ca63f8d1fe4 100644 --- a/enterprise/ha/src/test/java/org/neo4j/kernel/ha/HaCountsIT.java +++ b/enterprise/ha/src/test/java/org/neo4j/kernel/ha/HaCountsIT.java @@ -250,7 +250,7 @@ private long awaitOnline( HighlyAvailableGraphDatabase db, NewIndexDescriptor in switch ( statement( db ).readOperations().indexGetState( index ) ) { case ONLINE: - return indexingService( db ).getIndexId( index ); + return indexingService( db ).getIndexId( index.schema() ); case FAILED: throw new IllegalStateException( "Index failed instead of becoming ONLINE" ); diff --git a/enterprise/management/src/main/java/org/neo4j/management/impl/IndexSamplingManagerBean.java b/enterprise/management/src/main/java/org/neo4j/management/impl/IndexSamplingManagerBean.java index 434ced3d35cc6..7b6c19d9999c1 100644 --- a/enterprise/management/src/main/java/org/neo4j/management/impl/IndexSamplingManagerBean.java +++ b/enterprise/management/src/main/java/org/neo4j/management/impl/IndexSamplingManagerBean.java @@ -27,7 +27,7 @@ import org.neo4j.jmx.impl.Neo4jMBean; import org.neo4j.kernel.NeoStoreDataSource; import org.neo4j.kernel.api.exceptions.index.IndexNotFoundKernelException; -import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.impl.api.index.IndexingService; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingMode; import org.neo4j.kernel.impl.transaction.state.DataSourceManager; @@ -130,7 +130,7 @@ public void triggerIndexSampling( String labelKey, String propertyKey, boolean f try { state.indexingService.triggerIndexSampling( - NewIndexDescriptorFactory.forLabel( labelKeyId, propertyKeyId ), + SchemaDescriptorFactory.forLabel( labelKeyId, propertyKeyId ), getIndexSamplingMode( forceSample ) ); } catch ( IndexNotFoundKernelException e ) diff --git a/enterprise/management/src/test/java/org/neo4j/management/impl/IndexSamplingManagerBeanTest.java b/enterprise/management/src/test/java/org/neo4j/management/impl/IndexSamplingManagerBeanTest.java index d06d7ed7f0d3c..92ef9e9a243f8 100644 --- a/enterprise/management/src/test/java/org/neo4j/management/impl/IndexSamplingManagerBeanTest.java +++ b/enterprise/management/src/test/java/org/neo4j/management/impl/IndexSamplingManagerBeanTest.java @@ -25,7 +25,7 @@ import org.neo4j.graphdb.DependencyResolver; import org.neo4j.kernel.NeoStoreDataSource; import org.neo4j.kernel.api.exceptions.index.IndexNotFoundKernelException; -import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; +import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.impl.api.index.IndexingService; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingMode; import org.neo4j.storageengine.api.StoreReadLayer; @@ -76,7 +76,7 @@ public void samplingTriggeredWhenIdsArePresent() throws IndexNotFoundKernelExcep // Then verify( indexingService, times( 1 ) ).triggerIndexSampling( - NewIndexDescriptorFactory.forLabel( LABEL_ID, PROPERTY_ID ) , + SchemaDescriptorFactory.forLabel( LABEL_ID, PROPERTY_ID ) , IndexSamplingMode.TRIGGER_REBUILD_UPDATED); } @@ -92,7 +92,7 @@ public void forceSamplingTriggeredWhenIdsArePresent() throws IndexNotFoundKernel // Then verify( indexingService, times( 1 ) ).triggerIndexSampling( - NewIndexDescriptorFactory.forLabel( LABEL_ID, PROPERTY_ID ) , + SchemaDescriptorFactory.forLabel( LABEL_ID, PROPERTY_ID ) , IndexSamplingMode.TRIGGER_REBUILD_ALL); }