diff --git a/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/IndexQuery.java b/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/IndexQuery.java index 6f409a6eb5899..22687b3d4f222 100644 --- a/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/IndexQuery.java +++ b/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/IndexQuery.java @@ -31,6 +31,12 @@ public abstract class IndexQuery { + /** + * Scans all entries in the index. + */ + @SuppressWarnings( "StaticInitializerReferencesSubClass" ) + public static ExistsPredicate SCAN = new ExistsPredicate( -1 ); + /** * Searches the index for all entries that has the given property. * diff --git a/community/kernel-api/src/test/java/org/neo4j/internal/kernel/api/NodeValueIndexCursorTestBase.java b/community/kernel-api/src/test/java/org/neo4j/internal/kernel/api/NodeValueIndexCursorTestBase.java index 40f4e6dc4ca9c..965d75c460ef9 100644 --- a/community/kernel-api/src/test/java/org/neo4j/internal/kernel/api/NodeValueIndexCursorTestBase.java +++ b/community/kernel-api/src/test/java/org/neo4j/internal/kernel/api/NodeValueIndexCursorTestBase.java @@ -28,8 +28,6 @@ import org.neo4j.graphdb.schema.IndexDefinition; import static java.util.concurrent.TimeUnit.SECONDS; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; import static org.neo4j.graphdb.Label.label; import static org.neo4j.internal.kernel.api.ExplicitIndexCursorTestBase.assertFoundNodes; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/Store.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/AllStoreHolder.java similarity index 98% rename from community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/Store.java rename to community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/AllStoreHolder.java index 6fe96b4308827..a30639bfbaa05 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/Store.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/AllStoreHolder.java @@ -63,7 +63,7 @@ import static org.neo4j.kernel.impl.store.record.AbstractBaseRecord.NO_ID; import static org.neo4j.kernel.impl.store.record.RecordLoad.NORMAL; -class Store extends Read implements Token +class AllStoreHolder extends Read implements Token { private final RelationshipGroupStore groupStore; private final PropertyStore propertyStore; @@ -73,7 +73,7 @@ class Store extends Read implements Token private final StoreReadLayer read; private final Lazy explicitIndexes; - Store( RecordStorageEngine engine, Supplier explicitIndexes ) + AllStoreHolder( RecordStorageEngine engine, Supplier explicitIndexes ) { read = engine.storeReadLayer(); statement = read.newStatement(); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/NodeCursor.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/NodeCursor.java index f0eb85b271d3a..8cb351e126721 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/NodeCursor.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/NodeCursor.java @@ -41,7 +41,7 @@ class NodeCursor extends NodeRecord implements org.neo4j.internal.kernel.api.Nod NodeCursor( Read read ) { - super( -1 ); + super( NO_ID ); this.read = read; this.labelCursor = read.labelCursor(); } @@ -184,6 +184,7 @@ public void close() private void reset() { - setId( next = NO_ID ); + next = NO_ID; + setId( NO_ID ); } } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/PropertyCursor.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/PropertyCursor.java index c6ee81ea82466..b02701ea2562e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/PropertyCursor.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/PropertyCursor.java @@ -56,7 +56,7 @@ public class PropertyCursor extends PropertyRecord implements org.neo4j.internal public PropertyCursor( Read read ) { - super( -1 ); + super( NO_ID ); this.read = read; } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/TempKernel.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/TempKernel.java index 1dee962b4adaf..2cc7bbbd86f0c 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/TempKernel.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/TempKernel.java @@ -79,7 +79,7 @@ public void close() { } - private static class Transaction extends Store implements org.neo4j.internal.kernel.api.Transaction + private static class Transaction extends AllStoreHolder implements org.neo4j.internal.kernel.api.Transaction { Transaction( RecordStorageEngine engine, KernelTransactions ktx ) { diff --git a/community/kernel/src/main/java/org/neo4j/storageengine/api/schema/IndexReader.java b/community/kernel/src/main/java/org/neo4j/storageengine/api/schema/IndexReader.java index 24adfcfb18deb..5fd4850444979 100644 --- a/community/kernel/src/main/java/org/neo4j/storageengine/api/schema/IndexReader.java +++ b/community/kernel/src/main/java/org/neo4j/storageengine/api/schema/IndexReader.java @@ -27,6 +27,8 @@ import org.neo4j.kernel.impl.newapi.IndexCursorProgressor; import org.neo4j.values.storable.Value; +import static org.neo4j.internal.kernel.api.IndexQuery.SCAN; + /** * Reader for an index. Must honor repeatable reads, which means that if a lookup is executed multiple times the * same result set must be returned. @@ -127,8 +129,7 @@ default void scan( IndexCursorProgressor.NodeValueCursor cursor ) // 2. For compound indexes all nodes have all properties assigned. // While we violate 1. here, we are at least "well intended", we don't actually care about what the key is. // 2. holds because compound indexes are only created through node keys. - IndexQuery.ExistsPredicate scan = IndexQuery.exists( -1 ); - cursor.initialize( new NodeValueIndexProgressor( query( scan ), cursor ), null ); + cursor.initialize( new NodeValueIndexProgressor( query( SCAN ), cursor ), null ); } catch ( IndexNotApplicableKernelException e ) {