public void removeRelationshipProperty( long relationshipId, String key ) throws RelationshipNotFoundException, NoSuchPropertyException { Relationship relationship = relationship( relationshipId ); if ( relationship.removeProperty( key ) == null ) { throw new NoSuchPropertyException( relationship, key ); } }
@Override void perform( Graph graph, ExpectedTransactionData expectations ) { Relationship relationship = graph.randomRelationship(); if ( relationship != null ) { String key = graph.randomPropertyKey(); if ( relationship.hasProperty( key ) ) { Object valueBefore = relationship.removeProperty( key ); expectations.removedProperty( relationship, key, valueBefore ); debug( relationship + " " + key + "=" + valueBefore ); } } } },
if ( rel1.removeProperty( key1 ) != null ) rel1.removeProperty( null ); fail( "Remove null property should throw exception." ); try rel1.removeProperty( null ); fail( "Null argument should result in exception." ); assertEquals( int1, rel1.removeProperty( key1 ) ); assertEquals( string1, rel2.removeProperty( key1 ) ); if ( rel2.removeProperty( key1 ) != null )
@Test public void testNodeRemoveProperty() { Node node1 = getGraphDb().getNodeById( node1Id ); Node node2 = getGraphDb().getNodeById( node2Id ); Relationship rel = node1.getSingleRelationship( MyRelTypes.TEST, Direction.BOTH ); // test remove property assertEquals( 1, node1.removeProperty( key1 ) ); assertEquals( 2, node2.removeProperty( key1 ) ); assertEquals( 1, rel.removeProperty( key1 ) ); assertEquals( string1, node1.removeProperty( key2 ) ); assertEquals( string2, node2.removeProperty( key2 ) ); assertEquals( string1, rel.removeProperty( key2 ) ); assertNotNull( node1.removeProperty( arrayKey ) ); assertNotNull( node2.removeProperty( arrayKey ) ); assertNotNull( rel.removeProperty( arrayKey ) ); }
@Test public void testChangeProperty() { Node node1 = getGraphDb().createNode(); Node node2 = getGraphDb().createNode(); Relationship rel = node1.createRelationshipTo( node2, TEST ); rel.setProperty( "test", "test1" ); newTransaction(); rel.setProperty( "test", "test2" ); rel.removeProperty( "test" ); rel.setProperty( "test", "test3" ); assertEquals( "test3", rel.getProperty( "test" ) ); rel.removeProperty( "test" ); rel.setProperty( "test", "test4" ); newTransaction(); assertEquals( "test4", rel.getProperty( "test" ) ); }
@Test public void testRelationshipChangeProperty2() { Integer int1 = 1; Integer int2 = 2; String string1 = "1"; String string2 = "2"; Node node1 = getGraphDb().createNode(); Node node2 = getGraphDb().createNode(); Relationship rel1 = node1.createRelationshipTo( node2, TEST ); rel1.setProperty( key1, int1 ); rel1.setProperty( key1, int2 ); assertEquals( int2, rel1.getProperty( key1 ) ); rel1.removeProperty( key1 ); rel1.setProperty( key1, string1 ); rel1.setProperty( key1, string2 ); assertEquals( string2, rel1.getProperty( key1 ) ); rel1.removeProperty( key1 ); rel1.setProperty( key1, true ); rel1.setProperty( key1, false ); assertEquals( false, rel1.getProperty( key1 ) ); rel1.removeProperty( key1 ); rel1.delete(); node2.delete(); node1.delete(); }
@Test public void testChangeProperty2() { // Create relationship with "test"="test1" Node node1 = getGraphDb().createNode(); Node node2 = getGraphDb().createNode(); Relationship rel = node1.createRelationshipTo( node2, TEST ); rel.setProperty( "test", "test1" ); newTransaction(); // commit // Remove "test" and set "test"="test3" instead rel.removeProperty( "test" ); rel.setProperty( "test", "test3" ); assertEquals( "test3", rel.getProperty( "test" ) ); newTransaction(); // commit // Remove "test" and set "test"="test4" instead assertEquals( "test3", rel.getProperty( "test" ) ); rel.removeProperty( "test" ); rel.setProperty( "test", "test4" ); newTransaction(); // commit // Should still be "test4" assertEquals( "test4", rel.getProperty( "test" ) ); }
@Test public void testRelMultiRemoveProperty() { Node node1 = getGraphDb().createNode(); Node node2 = getGraphDb().createNode(); Relationship rel = node1.createRelationshipTo( node2, MyRelTypes.TEST ); rel.setProperty( "key0", "0" ); rel.setProperty( "key1", "1" ); rel.setProperty( "key2", "2" ); rel.setProperty( "key3", "3" ); rel.setProperty( "key4", "4" ); newTransaction(); rel.removeProperty( "key3" ); rel.removeProperty( "key2" ); rel.removeProperty( "key3" ); newTransaction(); assertEquals( "0", rel.getProperty( "key0" ) ); assertEquals( "1", rel.getProperty( "key1" ) ); assertEquals( "4", rel.getProperty( "key4" ) ); assertTrue( !rel.hasProperty( "key2" ) ); assertTrue( !rel.hasProperty( "key3" ) ); rel.delete(); node1.delete(); node2.delete(); }
@Test public void testRemovePropertyDeletedRelationship() { Node node1 = getGraphDb().createNode(); Node node2 = getGraphDb().createNode(); Relationship rel = node1.createRelationshipTo( node2, MyRelTypes.TEST ); rel.setProperty( key, 1 ); rel.delete(); try { rel.removeProperty( key ); Transaction tx = getTransaction(); tx.success(); tx.close(); fail( "Remove property on deleted rel should not validate" ); } catch ( Exception e ) { // ok } node1.delete(); node2.delete(); }
rel1.removeProperty( key3 );
@Test public void queryResultsMustNotIncludeRelationshipsWithRemovedIndexedProperties() { db = createDatabase(); try ( Transaction tx = db.beginTx() ) { createSimpleRelationshipIndex(); tx.success(); } long relId; try ( Transaction tx = db.beginTx() ) { awaitIndexesOnline(); Node node = db.createNode(); Relationship rel = node.createRelationshipTo( node, REL ); rel.setProperty( PROP, "value" ); relId = rel.getId(); tx.success(); } try ( Transaction tx = db.beginTx() ) { db.getRelationshipById( relId ).removeProperty( PROP ); assertQueryFindsIds( db, false, "rels", "value" ); tx.success(); } }
expectedData.expectedDeletedRelationships.add( rel2 ); rel1.removeProperty( "number" ); expectedData.removedProperty( rel1, "number", 4.5D ); rel1.setProperty( "description", "Ignored" );
@Test public void queryResultsMustIncludeOldRelationshipPropertyValuesWhenRemovalsAreUndone() { db = createDatabase(); try ( Transaction tx = db.beginTx() ) { createSimpleRelationshipIndex(); tx.success(); } long relId; try ( Transaction tx = db.beginTx() ) { awaitIndexesOnline(); Node node = db.createNode(); Relationship rel = node.createRelationshipTo( node, REL ); rel.setProperty( PROP, "primo" ); relId = rel.getId(); tx.success(); } try ( Transaction tx = db.beginTx() ) { Relationship rel = db.getRelationshipById( relId ); assertQueryFindsIds( db, false, "rels", "primo", relId ); rel.removeProperty( PROP ); assertQueryFindsIds( db, false, "rels", "primo" ); rel.setProperty( PROP, "primo" ); assertQueryFindsIds( db, false, "rels", "primo", relId ); tx.success(); } }
relationship.removeProperty( testPropertyKey ); tx.success();
relationship.removeProperty( testPropertyKey ); tx.success();
onRandomRelationship( nodes, relationship -> relationship.removeProperty( randomKey() ) );
assertEquals( j * 10 + i, rel.removeProperty( "int" + ( j * 10 + i ) ) ); if ( i == PropertyType.getPayloadSize() - 1 && j != propRecCount - 1 )
rel1.removeProperty( "key1" ); fail( "Should throw exception" ); rel1.removeProperty( "key1" ); fail( "Should throw exception" );
rel.removeProperty( "key1" ); fail( "Write operation and no transaction should throw exception" );
Object removeRelationshipProperty( GraphDatabaseService graphDb, long relationshipId, String key ) { return graphDb.getRelationshipById( relationshipId ).removeProperty( key ); }