Skip to content

Commit

Permalink
Clarify naming around index capabilities
Browse files Browse the repository at this point in the history
  • Loading branch information
burqen committed Nov 16, 2017
1 parent b5beba8 commit bd4b349
Show file tree
Hide file tree
Showing 12 changed files with 101 additions and 94 deletions.
Expand Up @@ -30,15 +30,15 @@ public interface CapableIndexReference extends IndexReference, IndexCapability
CapableIndexReference NO_INDEX = new CapableIndexReference() CapableIndexReference NO_INDEX = new CapableIndexReference()
{ {
@Override @Override
public IndexOrder[] order( ValueGroup... valueGroups ) public IndexOrder[] orderCapability( ValueGroup... valueGroups )
{ {
return new IndexOrder[0]; return NO_CAPABILITY.orderCapability( valueGroups );
} }


@Override @Override
public IndexValueCapability value( ValueGroup... valueGroups ) public IndexValueCapability valueCapability( ValueGroup... valueGroups )
{ {
return IndexValueCapability.NO; return NO_CAPABILITY.valueCapability( valueGroups );
} }


@Override @Override
Expand Down
Expand Up @@ -41,7 +41,7 @@ public interface IndexCapability
* @return {@link IndexOrder} array containing all possible orderings for provided value groups or empty array if no explicit * @return {@link IndexOrder} array containing all possible orderings for provided value groups or empty array if no explicit
* ordering is possible or if length of {@code valueGroups} and {@link IndexReference#properties()} differ. * ordering is possible or if length of {@code valueGroups} and {@link IndexReference#properties()} differ.
*/ */
IndexOrder[] order( ValueGroup... valueGroups ); IndexOrder[] orderCapability( ValueGroup... valueGroups );


/** /**
* Is the index capable of providing values for a query on given combination of {@link ValueGroup}. * Is the index capable of providing values for a query on given combination of {@link ValueGroup}.
Expand All @@ -52,21 +52,21 @@ public interface IndexCapability
* ({@code new ValueGroup[]{null}}) is interpreted as a wildcard for any {@link ValueGroup}. Note that this is not the same as * ({@code new ValueGroup[]{null}}) is interpreted as a wildcard for any {@link ValueGroup}. Note that this is not the same as
* {@code order(null)} which is undefined. * {@code order(null)} which is undefined.
* @return {@link IndexValueCapability#YES} if index is capable of providing values for query on provided array of value groups, * @return {@link IndexValueCapability#YES} if index is capable of providing values for query on provided array of value groups,
* {@link IndexValueCapability#NO} if not or {@link IndexValueCapability#MAYBE} for some results. If length of * {@link IndexValueCapability#NO} if not or {@link IndexValueCapability#PARTIAL} for some results. If length of
* {@code valueGroups} and {@link IndexReference#properties()} differ {@link IndexValueCapability#NO} is returned. * {@code valueGroups} and {@link IndexReference#properties()} differ {@link IndexValueCapability#NO} is returned.
*/ */
IndexValueCapability value( ValueGroup... valueGroups ); IndexValueCapability valueCapability( ValueGroup... valueGroups );


IndexCapability NO_CAPABILITY = new IndexCapability() IndexCapability NO_CAPABILITY = new IndexCapability()
{ {
@Override @Override
public IndexOrder[] order( ValueGroup... valueGroups ) public IndexOrder[] orderCapability( ValueGroup... valueGroups )
{ {
return new IndexOrder[0]; return new IndexOrder[]{IndexOrder.UNORDERED};
} }


@Override @Override
public IndexValueCapability value( ValueGroup... valueGroups ) public IndexValueCapability valueCapability( ValueGroup... valueGroups )
{ {
return IndexValueCapability.NO; return IndexValueCapability.NO;
} }
Expand Down
Expand Up @@ -21,5 +21,5 @@


public enum IndexOrder public enum IndexOrder
{ {
ASCENDING, DESCENDING ASCENDING, DESCENDING, UNORDERED
} }
Expand Up @@ -22,7 +22,7 @@
public enum IndexValueCapability public enum IndexValueCapability
{ {
YES( 3 ), YES( 3 ),
MAYBE( 2 ), PARTIAL( 2 ),
NO( 1 ); NO( 1 );


/** /**
Expand Down
Expand Up @@ -27,12 +27,7 @@
* Usage pattern: * Usage pattern:
* <pre><code> * <pre><code>
* int nbrOfProps = cursor.numberOfProperties(); * int nbrOfProps = cursor.numberOfProperties();
* int[] propertyKeys = new int[nbrOfProps];
* for ( int i = 0; i < nbrOfProps; i++ )
* {
* propertyKeys[i] = cursor.propertyKey( i );
* }
*
* Value[] values = new Value[nbrOfProps]; * Value[] values = new Value[nbrOfProps];
* while ( cursor.next() ) * while ( cursor.next() )
* { * {
Expand All @@ -45,10 +40,7 @@
* } * }
* else * else
* { * {
* for ( int i = 0; i < nbrOfProps; i++ ) * values = getValuesFromStoreInstead();
* {
* values[i] = getPropertyValueFromStore( cursor.nodeReference(), propertyKeys[i] );
* }
* } * }
* *
* doWhatYouWantToDoWith( values ); * doWhatYouWantToDoWith( values );
Expand Down
Expand Up @@ -38,6 +38,7 @@
import static org.junit.Assert.assertThat; import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.neo4j.graphdb.Label.label; import static org.neo4j.graphdb.Label.label;
import static org.neo4j.internal.kernel.api.IndexOrder.UNORDERED;


public abstract class NodeValueIndexCursorTestBase<G extends KernelAPIReadTestSupport> public abstract class NodeValueIndexCursorTestBase<G extends KernelAPIReadTestSupport>
extends KernelAPIReadTestBase<G> extends KernelAPIReadTestBase<G>
Expand Down Expand Up @@ -101,68 +102,67 @@ public void shouldPerformExactLookup() throws Exception
PrimitiveLongSet uniqueIds = Primitive.longSet() ) PrimitiveLongSet uniqueIds = Primitive.longSet() )
{ {
// when // when
IndexValueCapability expectValue = index.value( ValueGroup.TEXT ); IndexValueCapability valueCapability = index.valueCapability( ValueGroup.TEXT );
read.nodeIndexSeek( index, node, null, IndexQuery.exact( prop, "zero" ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.exact( prop, "zero" ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, expectValue ); assertFoundNodesAndValue( node, uniqueIds, valueCapability );


// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.exact( prop, "one" ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.exact( prop, "one" ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, expectValue, strOne ); assertFoundNodesAndValue( node, uniqueIds, valueCapability, strOne );


// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.exact( prop, "two" ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.exact( prop, "two" ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, expectValue, strTwo1, strTwo2 ); assertFoundNodesAndValue( node, uniqueIds, valueCapability, strTwo1, strTwo2 );


// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.exact( prop, "three" ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.exact( prop, "three" ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, expectValue, strThree1, strThree2, strThree3 ); assertFoundNodesAndValue( node, uniqueIds, valueCapability, strThree1, strThree2, strThree3 );


// when // when
expectValue = index.value( ValueGroup.NUMBER ); valueCapability = index.valueCapability( ValueGroup.NUMBER );
read.nodeIndexSeek( index, node, null, IndexQuery.exact( prop, 1 ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.exact( prop, 1 ) );


// then // then
// todo continue here assertFoundNodesAndValue( node, 1, uniqueIds, valueCapability );
assertFoundNodesAndValue( node, 1, uniqueIds, expectValue );


//when //when
read.nodeIndexSeek( index, node, null, IndexQuery.exact( prop, 2 ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.exact( prop, 2 ) );


// then // then
assertFoundNodesAndValue( node, 2, uniqueIds, expectValue ); assertFoundNodesAndValue( node, 2, uniqueIds, valueCapability );


//when //when
read.nodeIndexSeek( index, node, null, IndexQuery.exact( prop, 3 ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.exact( prop, 3 ) );


// then // then
assertFoundNodesAndValue( node, 3, uniqueIds, expectValue ); assertFoundNodesAndValue( node, 3, uniqueIds, valueCapability );


//when //when
read.nodeIndexSeek( index, node, null, IndexQuery.exact( prop, 6 ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.exact( prop, 6 ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, expectValue, num6 ); assertFoundNodesAndValue( node, uniqueIds, valueCapability, num6 );


// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.exact( prop, 12.0 ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.exact( prop, 12.0 ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, expectValue, num12a, num12b ); assertFoundNodesAndValue( node, uniqueIds, valueCapability, num12a, num12b );


// when // when
expectValue = index.value( ValueGroup.BOOLEAN ); valueCapability = index.valueCapability( ValueGroup.BOOLEAN );
read.nodeIndexSeek( index, node, null, IndexQuery.exact( prop, true ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.exact( prop, true ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, expectValue, boolTrue ); assertFoundNodesAndValue( node, uniqueIds, valueCapability, boolTrue );
} }
} }


Expand All @@ -173,12 +173,12 @@ public void shouldPerformStringPrefixSearch() throws Exception
int label = token.nodeLabel( "Node" ); int label = token.nodeLabel( "Node" );
int prop = token.propertyKey( "prop" ); int prop = token.propertyKey( "prop" );
CapableIndexReference index = schemaRead.index( label, prop ); CapableIndexReference index = schemaRead.index( label, prop );
IndexValueCapability stringCapability = index.value( ValueGroup.TEXT ); IndexValueCapability stringCapability = index.valueCapability( ValueGroup.TEXT );
try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor(); try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor();
PrimitiveLongSet uniqueIds = Primitive.longSet() ) PrimitiveLongSet uniqueIds = Primitive.longSet() )
{ {
// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.stringPrefix( prop, "t" ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.stringPrefix( prop, "t" ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, stringCapability, strTwo1, strTwo2, strThree1, strThree2, strThree3 ); assertFoundNodesAndValue( node, uniqueIds, stringCapability, strTwo1, strTwo2, strThree1, strThree2, strThree3 );
Expand All @@ -192,12 +192,12 @@ public void shouldPerformStringSuffixSearch() throws Exception
int label = token.nodeLabel( "Node" ); int label = token.nodeLabel( "Node" );
int prop = token.propertyKey( "prop" ); int prop = token.propertyKey( "prop" );
CapableIndexReference index = schemaRead.index( label, prop ); CapableIndexReference index = schemaRead.index( label, prop );
IndexValueCapability stringCapability = index.value( ValueGroup.TEXT ); IndexValueCapability stringCapability = index.valueCapability( ValueGroup.TEXT );
try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor(); try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor();
PrimitiveLongSet uniqueIds = Primitive.longSet() ) PrimitiveLongSet uniqueIds = Primitive.longSet() )
{ {
// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.stringSuffix( prop, "e" ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.stringSuffix( prop, "e" ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, stringCapability, strOne, strThree1, strThree2, strThree3 ); assertFoundNodesAndValue( node, uniqueIds, stringCapability, strOne, strThree1, strThree2, strThree3 );
Expand All @@ -211,12 +211,12 @@ public void shouldPerformStringContainmentSearch() throws Exception
int label = token.nodeLabel( "Node" ); int label = token.nodeLabel( "Node" );
int prop = token.propertyKey( "prop" ); int prop = token.propertyKey( "prop" );
CapableIndexReference index = schemaRead.index( label, prop ); CapableIndexReference index = schemaRead.index( label, prop );
IndexValueCapability stringCapability = index.value( ValueGroup.TEXT ); IndexValueCapability stringCapability = index.valueCapability( ValueGroup.TEXT );
try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor(); try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor();
PrimitiveLongSet uniqueIds = Primitive.longSet() ) PrimitiveLongSet uniqueIds = Primitive.longSet() )
{ {
// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.stringContains( prop, "o" ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.stringContains( prop, "o" ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, stringCapability, strOne, strTwo1, strTwo2 ); assertFoundNodesAndValue( node, uniqueIds, stringCapability, strOne, strTwo1, strTwo2 );
Expand All @@ -230,37 +230,37 @@ public void shouldPerformStringRangeSearch() throws Exception
int label = token.nodeLabel( "Node" ); int label = token.nodeLabel( "Node" );
int prop = token.propertyKey( "prop" ); int prop = token.propertyKey( "prop" );
CapableIndexReference index = schemaRead.index( label, prop ); CapableIndexReference index = schemaRead.index( label, prop );
IndexValueCapability stringCapability = index.value( ValueGroup.TEXT ); IndexValueCapability stringCapability = index.valueCapability( ValueGroup.TEXT );
try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor(); try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor();
PrimitiveLongSet uniqueIds = Primitive.longSet() ) PrimitiveLongSet uniqueIds = Primitive.longSet() )
{ {
// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.range( prop, "one", true, "three", true ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.range( prop, "one", true, "three", true ) );


// then // then


assertFoundNodesAndValue( node, uniqueIds, stringCapability, strOne, strThree1, strThree2, strThree3 ); assertFoundNodesAndValue( node, uniqueIds, stringCapability, strOne, strThree1, strThree2, strThree3 );


// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.range( prop, "one", true, "three", false ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.range( prop, "one", true, "three", false ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, stringCapability, strOne ); assertFoundNodesAndValue( node, uniqueIds, stringCapability, strOne );


// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.range( prop, "one", false, "three", true ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.range( prop, "one", false, "three", true ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, stringCapability, strThree1, strThree2, strThree3 ); assertFoundNodesAndValue( node, uniqueIds, stringCapability, strThree1, strThree2, strThree3 );


// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.range( prop, "one", false, "two", false ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.range( prop, "one", false, "two", false ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, stringCapability, strThree1, strThree2, strThree3 ); assertFoundNodesAndValue( node, uniqueIds, stringCapability, strThree1, strThree2, strThree3 );


// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.range( prop, "one", true, "two", true ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.range( prop, "one", true, "two", true ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, stringCapability, strOne, strThree1, strThree2, strThree3, strTwo1, strTwo2 ); assertFoundNodesAndValue( node, uniqueIds, stringCapability, strOne, strThree1, strThree2, strThree3, strTwo1, strTwo2 );
Expand All @@ -274,31 +274,31 @@ public void shouldPerformNumericRangeSearch() throws Exception
int label = token.nodeLabel( "Node" ); int label = token.nodeLabel( "Node" );
int prop = token.propertyKey( "prop" ); int prop = token.propertyKey( "prop" );
CapableIndexReference index = schemaRead.index( label, prop ); CapableIndexReference index = schemaRead.index( label, prop );
IndexValueCapability numberCapability = index.value( ValueGroup.NUMBER ); IndexValueCapability numberCapability = index.valueCapability( ValueGroup.NUMBER );
try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor(); try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor();
PrimitiveLongSet uniqueIds = Primitive.longSet() ) PrimitiveLongSet uniqueIds = Primitive.longSet() )
{ {
// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.range( prop, 5, true, 12, true ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.range( prop, 5, true, 12, true ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, numberCapability, num5, num6, num12a, num12b ); assertFoundNodesAndValue( node, uniqueIds, numberCapability, num5, num6, num12a, num12b );


// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.range( prop, 5, true, 12, false ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.range( prop, 5, true, 12, false ) );


// then // then


assertFoundNodesAndValue( node, uniqueIds, numberCapability, num5, num6 ); assertFoundNodesAndValue( node, uniqueIds, numberCapability, num5, num6 );


// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.range( prop, 5, false, 12, true ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.range( prop, 5, false, 12, true ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, numberCapability, num6, num12a, num12b ); assertFoundNodesAndValue( node, uniqueIds, numberCapability, num6, num12a, num12b );


// when // when
read.nodeIndexSeek( index, node, null, IndexQuery.range( prop, 5, false, 12, false ) ); read.nodeIndexSeek( index, node, UNORDERED, IndexQuery.range( prop, 5, false, 12, false ) );


// then // then
assertFoundNodesAndValue( node, uniqueIds, numberCapability, num6 ); assertFoundNodesAndValue( node, uniqueIds, numberCapability, num6 );
Expand All @@ -312,12 +312,12 @@ public void shouldPerformIndexScan() throws Exception
int label = token.nodeLabel( "Node" ); int label = token.nodeLabel( "Node" );
int prop = token.propertyKey( "prop" ); int prop = token.propertyKey( "prop" );
CapableIndexReference index = schemaRead.index( label, prop ); CapableIndexReference index = schemaRead.index( label, prop );
IndexValueCapability wildcardCapability = index.value( new ValueGroup[]{null} ); IndexValueCapability wildcardCapability = index.valueCapability( new ValueGroup[]{null} );
try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor(); try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor();
PrimitiveLongSet uniqueIds = Primitive.longSet() ) PrimitiveLongSet uniqueIds = Primitive.longSet() )
{ {
// when // when
read.nodeIndexScan( index, node, null ); read.nodeIndexScan( index, node, UNORDERED );


// then // then
assertFoundNodesAndValue( node, 24, uniqueIds, wildcardCapability ); assertFoundNodesAndValue( node, 24, uniqueIds, wildcardCapability );
Expand All @@ -331,7 +331,7 @@ public void shouldRespectOrderCapabilitiesForNumbers() throws Exception
int label = token.nodeLabel( "Node" ); int label = token.nodeLabel( "Node" );
int prop = token.propertyKey( "prop" ); int prop = token.propertyKey( "prop" );
CapableIndexReference index = schemaRead.index( label, prop ); CapableIndexReference index = schemaRead.index( label, prop );
IndexOrder[] orderCapabilities = index.order( ValueGroup.NUMBER ); IndexOrder[] orderCapabilities = index.orderCapability( ValueGroup.NUMBER );
try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor() ) try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor() )
{ {
for ( IndexOrder orderCapability : orderCapabilities ) for ( IndexOrder orderCapability : orderCapabilities )
Expand All @@ -352,7 +352,7 @@ public void shouldRespectOrderCapabilitiesForStrings() throws Exception
int label = token.nodeLabel( "Node" ); int label = token.nodeLabel( "Node" );
int prop = token.propertyKey( "prop" ); int prop = token.propertyKey( "prop" );
CapableIndexReference index = schemaRead.index( label, prop ); CapableIndexReference index = schemaRead.index( label, prop );
IndexOrder[] orderCapabilities = index.order( ValueGroup.TEXT ); IndexOrder[] orderCapabilities = index.orderCapability( ValueGroup.TEXT );
try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor() ) try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor() )
{ {
for ( IndexOrder orderCapability : orderCapabilities ) for ( IndexOrder orderCapability : orderCapabilities )
Expand All @@ -373,7 +373,7 @@ public void shouldRespectOrderCapabilitiesForWildcard() throws Exception
int label = token.nodeLabel( "Node" ); int label = token.nodeLabel( "Node" );
int prop = token.propertyKey( "prop" ); int prop = token.propertyKey( "prop" );
CapableIndexReference index = schemaRead.index( label, prop ); CapableIndexReference index = schemaRead.index( label, prop );
IndexOrder[] orderCapabilities = index.order( new ValueGroup[]{null} ); IndexOrder[] orderCapabilities = index.orderCapability( new ValueGroup[]{null} );
try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor() ) try ( NodeValueIndexCursor node = cursors.allocateNodeValueIndexCursor() )
{ {
for ( IndexOrder orderCapability : orderCapabilities ) for ( IndexOrder orderCapability : orderCapabilities )
Expand Down Expand Up @@ -406,6 +406,9 @@ private void assertFoundNodesInOrder( NodeValueIndexCursor node, IndexOrder inde
assertTrue( "Requested ordering " + indexOrder + " was not respected.", assertTrue( "Requested ordering " + indexOrder + " was not respected.",
Values.COMPARATOR.compare( currentValue, storedValue ) >= 0 ); Values.COMPARATOR.compare( currentValue, storedValue ) >= 0 );
break; break;
case UNORDERED:
// Don't verify order
break;
default: default:
throw new UnsupportedOperationException( "Can not verify ordering for " + indexOrder ); throw new UnsupportedOperationException( "Can not verify ordering for " + indexOrder );
} }
Expand Down Expand Up @@ -485,4 +488,3 @@ private long nodeWithProp( GraphDatabaseService graphDb, Object value )
return node.getId(); return node.getId();
} }
} }

0 comments on commit bd4b349

Please sign in to comment.