diff --git a/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/IndexCapability.java b/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/IndexCapability.java index 1c5ddeb18a67b..0aa439aa84d9d 100644 --- a/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/IndexCapability.java +++ b/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/IndexCapability.java @@ -30,6 +30,9 @@ */ public interface IndexCapability { + IndexOrder[] ORDER_ASC = {IndexOrder.ASCENDING}; + IndexOrder[] ORDER_NONE = new IndexOrder[0]; + /** * What possible orderings is this index capable to provide for a query on given combination of {@link ValueGroup}. * Ordering of ValueGroup correspond to ordering of related {@link IndexReference#properties()}. @@ -56,12 +59,17 @@ public interface IndexCapability */ IndexValueCapability valueCapability( ValueGroup... valueGroups ); + default boolean singleWildcard( ValueGroup[] valueGroups ) + { + return valueGroups.length == 1 && valueGroups[0] == ValueGroup.UNKNOWN; + } + IndexCapability NO_CAPABILITY = new IndexCapability() { @Override public IndexOrder[] orderCapability( ValueGroup... valueGroups ) { - return new IndexOrder[0]; + return ORDER_NONE; } @Override 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 d9ac7e4559bb4..d8143654d2334 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 @@ -26,6 +26,9 @@ import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.Node; import org.neo4j.graphdb.Transaction; +import org.neo4j.internal.kernel.api.exceptions.KernelException; +import org.neo4j.values.storable.CoordinateReferenceSystem; +import org.neo4j.values.storable.DateValue; import org.neo4j.values.storable.Value; import org.neo4j.values.storable.ValueGroup; import org.neo4j.values.storable.Values; @@ -38,6 +41,10 @@ import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.neo4j.graphdb.Label.label; +import static org.neo4j.values.storable.CoordinateReferenceSystem.Cartesian; +import static org.neo4j.values.storable.CoordinateReferenceSystem.Cartesian_3D; +import static org.neo4j.values.storable.CoordinateReferenceSystem.WGS84; +import static org.neo4j.values.storable.CoordinateReferenceSystem.WGS84_3D; import static org.neo4j.values.storable.Values.stringValue; public abstract class NodeValueIndexCursorTestBase @@ -47,6 +54,7 @@ public abstract class NodeValueIndexCursorTestBase