private void deleteRelationships( long nodeId ) { try ( KernelStatement statement = (KernelStatement) tx.acquireStatement(); StorageNodeCursor nodeCursor = allocateNodeCursor( nodeId ) ) { assertTrue( nodeCursor.next() ); try ( StorageRelationshipTraversalCursor relationships = allocateRelationshipTraversalCursor( nodeCursor ) ) { while ( relationships.next() ) { relDelete( relationships.entityReference() ); } } } }
initializeStores( databaseLayout, stringMap() ); startTx(); long node1 = nextId( Node.class ); transaction.nodeDoCreate( node1 ); long node2 = nextId( Node.class ); transaction.nodeDoCreate( node2 ); StorageProperty n1prop1 = nodeAddProperty( node1, index( "prop1" ), "string1" ); StorageProperty n1prop2 = nodeAddProperty( node1, index( "prop2" ), 1 ); StorageProperty n1prop3 = nodeAddProperty( node1, index( "prop3" ), true ); StorageProperty n2prop1 = nodeAddProperty( node2, index( "prop1" ), "string2" ); StorageProperty n2prop2 = nodeAddProperty( node2, index( "prop2" ), 2 ); StorageProperty n2prop3 = nodeAddProperty( node2, index( "prop3" ), false ); int relType1 = (int) nextId( RelationshipType.class ); String typeName1 = "relationshiptype1"; transaction.relationshipTypeDoCreateForName( typeName1, relType1 ); int relType2 = (int) nextId( RelationshipType.class ); String typeName2 = "relationshiptype2"; transaction.relationshipTypeDoCreateForName( typeName2, relType2 ); long rel1 = nextId( Relationship.class ); transaction.relationshipDoCreate( rel1, relType1, node1, node2 ); long rel2 = nextId( Relationship.class ); transaction.relationshipDoCreate( rel2, relType2, node2, node1 ); StorageProperty r1prop1 = relAddProperty( rel1, index( "prop1" ), "string1" ); StorageProperty r1prop2 = relAddProperty( rel1, index( "prop2" ), 1 ); StorageProperty r1prop3 = relAddProperty( rel1, index( "prop3" ), true );
@Test public void testRels1() throws Exception { initializeStores( databaseLayout, stringMap() ); startTx(); int relType1 = (int) nextId( RelationshipType.class ); String typeName = "relationshiptype1"; transaction.relationshipTypeDoCreateForName( typeName, relType1 ); long[] nodeIds = new long[3]; for ( int i = 0; i < 3; i++ ) { nodeIds[i] = nextId( Node.class ); transaction.nodeDoCreate( nodeIds[i] ); nodeAddProperty( nodeIds[i], index( "nisse" ), 10 - i ); } for ( int i = 0; i < 2; i++ ) { transaction.relationshipDoCreate( nextId( Relationship.class ), relType1, nodeIds[i], nodeIds[i + 1] ); } commitTx(); startTx(); for ( int i = 0; i < 3; i += 2 ) { deleteRelationships( nodeIds[i] ); transaction.nodeDoDelete( nodeIds[i] ); } commitTx(); ds.stop(); }
initializeStores( databaseLayout, stringMap() ); startTx(); int relType1 = (int) nextId( RelationshipType.class ); transaction.relationshipTypeDoCreateForName( "relationshiptype1", relType1 ); long[] nodeIds = new long[8]; for ( int i = 0; i < nodeIds.length; i++ ) nodeIds[i] = nextId( Node.class ); transaction.nodeDoCreate( nodeIds[i] ); transaction.relationshipDoCreate( nextId( Relationship.class ), relType1, nodeIds[i], nodeIds[i * 2] ); long rel5 = nextId( Relationship.class ); transaction.relationshipDoCreate( rel5, relType1, nodeIds[0], nodeIds[5] ); long rel2 = nextId( Relationship.class ); transaction.relationshipDoCreate( rel2, relType1, nodeIds[1], nodeIds[2] ); long rel3 = nextId( Relationship.class ); transaction.relationshipDoCreate( rel3, relType1, nodeIds[1], nodeIds[3] ); long rel6 = nextId( Relationship.class ); transaction.relationshipDoCreate( rel6, relType1, nodeIds[1], nodeIds[6] ); long rel1 = nextId( Relationship.class ); transaction.relationshipDoCreate( rel1, relType1, nodeIds[0], nodeIds[1] ); long rel4 = nextId( Relationship.class ); transaction.relationshipDoCreate( rel4, relType1, nodeIds[0], nodeIds[4] ); long rel7 = nextId( Relationship.class ); transaction.relationshipDoCreate( rel7, relType1, nodeIds[0], nodeIds[7] ); commitTx(); startTx();
relLoadProperties( rel, newPropertyReceiver( props ) ); int count = 0; for ( int keyId : props.keySet() ) relLoadProperties( rel, propertyCounter ); assertEquals( 3, propertyCounter.count ); assertRelationshipData( rel, firstNode, secondNode, relType ); relDelete( rel ); assertHasRelationships( firstNode ); assertHasRelationships( secondNode );
long rel1, long rel2, int relType1, int relType2 ) throws IOException, RuntimeException, TokenNotFoundException assertTrue( nodeExists( node ) ); Map<Integer,Pair<StorageProperty,Long>> props = new HashMap<>(); nodeLoadProperties( node, newPropertyReceiver( props ) ); int count = 0; for ( int keyId : props.keySet() ) nodeAddProperty( node, prop1.propertyKeyId(), "-string2" ); nodeAddProperty( node, prop2.propertyKeyId(), -2 ); nodeAddProperty( node, prop3.propertyKeyId(), true ); StorageNodeCursor nodeCursor = allocateNodeCursor( node ) ) try ( StorageRelationshipTraversalCursor relationships = allocateRelationshipTraversalCursor( nodeCursor ) )
relLoadProperties( rel, newPropertyReceiver( props ) ); int count = 0; for ( int keyId : props.keySet() ) relAddProperty( rel, prop1.propertyKeyId(), "-string2" ); relAddProperty( rel, prop2.propertyKeyId(), -2 ); relAddProperty( rel, prop3.propertyKeyId(), true ); assertRelationshipData( rel, firstNode, secondNode, relType );
nodeLoadProperties( node, newPropertyReceiver( props ) ); int count = 0; for ( int keyId : props.keySet() ) nodeLoadProperties( node, propertyCounter ); assertEquals( 3, propertyCounter.count ); assertHasRelationships( node );
private void assertHasRelationships( long node ) { try ( KernelStatement statement = (KernelStatement) tx.acquireStatement(); StorageNodeCursor nodeCursor = allocateNodeCursor( node ) ) { assertTrue( nodeCursor.next() ); try ( StorageRelationshipTraversalCursor relationships = allocateRelationshipTraversalCursor( nodeCursor ) ) { assertTrue( relationships.next() ); } } }
StoreFactory factory = newStoreFactory( databaseLayout, pageCache, fileSystem ); long recordVersion = defaultStoreVersion(); try ( NeoStores neoStores = factory.openAllNeoStores( true ) )
@Test public void setVersion() throws Exception { FileSystemAbstraction fileSystem = fs.get(); File storeDir = dir.directory(); createTestDatabase( fileSystem, storeDir ).shutdown(); DatabaseLayout databaseLayout = dir.databaseLayout(); assertEquals( 0, MetaDataStore.setRecord( pageCache, databaseLayout.metadataStore(), Position.LOG_VERSION, 10 ) ); assertEquals( 10, MetaDataStore.setRecord( pageCache, databaseLayout.metadataStore(), Position.LOG_VERSION, 12 ) ); Config config = Config.defaults(); StoreFactory sf = getStoreFactory( config, databaseLayout, fileSystem, LOG_PROVIDER ); NeoStores neoStores = sf.openAllNeoStores(); assertEquals( 12, neoStores.getMetaDataStore().getCurrentLogVersion() ); neoStores.close(); }
private boolean nodeExists( long nodeId ) { try ( StorageNodeCursor node = allocateNodeCursor( nodeId ) ) { return node.next(); } }
@Test public void testRels2() throws Exception initializeStores( databaseLayout, stringMap() ); startTx(); int relType1 = (int) nextId( RelationshipType.class ); String typeName = "relationshiptype1"; transaction.relationshipTypeDoCreateForName( typeName, relType1 ); for ( int i = 0; i < 3; i++ ) nodeIds[i] = nextId( Node.class ); transaction.nodeDoCreate( nodeIds[i] ); nodeAddProperty( nodeIds[i], index( "nisse" ), 10 - i ); transaction.relationshipDoCreate( nextId( Relationship.class ), relType1, nodeIds[i], nodeIds[i + 1] ); transaction.relationshipDoCreate( nextId( Relationship.class ), relType1, nodeIds[0], nodeIds[2] ); commitTx(); startTx(); for ( int i = 0; i < 3; i++ ) deleteRelationships( nodeIds[i] ); transaction.nodeDoDelete( nodeIds[i] ); commitTx(); ds.stop();
relLoadProperties( rel, newPropertyReceiver( props ) ); int count = 0; for ( int keyId : props.keySet() ) relLoadProperties( rel, propertyCounter ); assertEquals( 3, propertyCounter.count ); assertRelationshipData( rel, firstNode, secondNode, relType ); relDelete( rel ); assertHasRelationships( firstNode ); assertHasRelationships( secondNode );
relLoadProperties( rel, newPropertyReceiver( props ) ); int count = 0; for ( int keyId : props.keySet() ) relAddProperty( rel, prop1.propertyKeyId(), "-string1" ); relAddProperty( rel, prop2.propertyKeyId(), -1 ); relAddProperty( rel, prop3.propertyKeyId(), false ); assertRelationshipData( rel, firstNode, secondNode, relType );
nodeLoadProperties( node, newPropertyReceiver( props ) ); int count = 0; for ( int keyId : props.keySet() ) nodeLoadProperties( node, propertyCounter ); assertEquals( 3, propertyCounter.count ); assertHasRelationships( node ); transaction.nodeDoDelete( node );
StorageNodeCursor nodeCursor = allocateNodeCursor( node ) ) try ( StorageRelationshipTraversalCursor relationships = allocateRelationshipTraversalCursor( nodeCursor ) )
StoreFactory factory = newStoreFactory( databaseLayout, pageCache, fileSystem ); long recordVersion = defaultStoreVersion(); try ( NeoStores neoStores = factory.openAllNeoStores( true ) )
@Test public void testProps1() throws Exception { initializeStores( databaseLayout, stringMap() ); startTx(); long nodeId = nextId( Node.class ); transaction.nodeDoCreate( nodeId ); pStore.nextId(); StorageProperty prop = nodeAddProperty( nodeId, index( "nisse" ), 10 ); commitTx(); ds.stop(); initializeStores( databaseLayout, stringMap() ); startTx(); StorageProperty prop2 = nodeAddProperty( nodeId, prop.propertyKeyId(), 5 ); transaction.nodeDoRemoveProperty( nodeId, prop2.propertyKeyId() ); transaction.nodeDoDelete( nodeId ); commitTx(); ds.stop(); }