use of org.neo4j.graphdb.Node in project neo4j by neo4j.
the class IndexConsultedPropertyBlockSweeperTest method setUp.
@Before
public void setUp() throws IOException {
api = dbRule.getGraphDatabaseAPI();
nonIndexedPropKey = "notIndexed";
indexedPropKey = "indexed";
Label usedLabel = Label.label("UsedLabel");
try (Transaction transaction = api.beginTx()) {
api.schema().indexFor(usedLabel).on(indexedPropKey).create();
transaction.success();
}
try (Transaction transaction = api.beginTx()) {
indexedValue = "value1";
nonIndexedValue = "value2";
Node nodeA = api.createNode(usedLabel);
nodeA.setProperty(indexedPropKey, indexedValue);
nodeA.setProperty(nonIndexedPropKey, nonIndexedValue);
nodeId = nodeA.getId();
transaction.success();
}
DependencyResolver resolver = api.getDependencyResolver();
NeoStores neoStores = resolver.resolveDependency(RecordStorageEngine.class).testAccessNeoStores();
nodeStore = neoStores.getNodeStore();
PropertyKeyTokenStore propertyKeyTokenStore = neoStores.getPropertyKeyTokenStore();
propertyKeys = PropertyDeduplicatorTestUtil.indexPropertyKeys(propertyKeyTokenStore);
propertyStore = neoStores.getPropertyStore();
nodeRecord = getRecord(nodeStore, nodeId);
propertyId = nodeRecord.getNextProp();
indexMock = mock(IndexLookup.Index.class);
when(indexMock.contains(nodeId, indexedValue)).thenReturn(true);
propertyRemoverMock = mock(DuplicatePropertyRemover.class);
}
use of org.neo4j.graphdb.Node in project neo4j by neo4j.
the class IndexLookupTest method setUp.
@BeforeClass
public static void setUp() {
api = dbRule.getGraphDatabaseAPI();
String notUsedIndexPropKey = "notUsed";
String usedIndexPropKey = "used";
Label usedLabel = Label.label("UsedLabel");
Label notUsedLabel = Label.label("NotUsedLabel");
try (Transaction transaction = api.beginTx()) {
api.schema().indexFor(usedLabel).on(usedIndexPropKey).create();
transaction.success();
}
try (Transaction transaction = api.beginTx()) {
api.schema().awaitIndexesOnline(10, TimeUnit.SECONDS);
indexedNodePropertyValue = "value1";
notIndexedNodePropertyValue = "value2";
Node nodeA = api.createNode(usedLabel);
nodeA.setProperty(usedIndexPropKey, indexedNodePropertyValue);
nodeA.setProperty(notUsedIndexPropKey, notIndexedNodePropertyValue);
indexedNode = nodeA.getId();
Node nodeB = api.createNode(notUsedLabel);
nodeB.setProperty(usedIndexPropKey, notIndexedNodePropertyValue);
nodeB.setProperty(notUsedIndexPropKey, indexedNodePropertyValue);
notIndexedNode = nodeB.getId();
transaction.success();
}
DependencyResolver resolver = api.getDependencyResolver();
NeoStores neoStores = resolver.resolveDependency(RecordStorageEngine.class).testAccessNeoStores();
SchemaStore schemaStore = neoStores.getSchemaStore();
SchemaIndexProvider schemaIndexProvider = resolver.resolveDependency(SchemaIndexProvider.class);
indexLookup = new IndexLookup(schemaStore, schemaIndexProvider);
LabelTokenStore labelTokenStore = neoStores.getLabelTokenStore();
notUsedLabelId = findTokenFor(labelTokenStore, notUsedLabel.name()).id();
usedLabelId = findTokenFor(labelTokenStore, usedLabel.name()).id();
PropertyKeyTokenStore propertyKeyTokenStore = neoStores.getPropertyKeyTokenStore();
notUsedPropertyId = findTokenFor(propertyKeyTokenStore, notUsedIndexPropKey).id();
usedPropertyId = findTokenFor(propertyKeyTokenStore, usedIndexPropKey).id();
}
use of org.neo4j.graphdb.Node in project neo4j by neo4j.
the class ConsistencyCheckServiceIntegrationTest method prepareDbWithDeletedRelationshipPartOfTheChain.
private void prepareDbWithDeletedRelationshipPartOfTheChain() {
GraphDatabaseAPI db = (GraphDatabaseAPI) new TestGraphDatabaseFactory().newEmbeddedDatabaseBuilder(testDirectory.graphDbDir()).setConfig(GraphDatabaseSettings.record_format, getRecordFormatName()).newGraphDatabase();
try {
RelationshipType relationshipType = RelationshipType.withName("testRelationshipType");
try (Transaction tx = db.beginTx()) {
Node node1 = set(db.createNode());
Node node2 = set(db.createNode(), property("key", "value"));
node1.createRelationshipTo(node2, relationshipType);
node1.createRelationshipTo(node2, relationshipType);
node1.createRelationshipTo(node2, relationshipType);
node1.createRelationshipTo(node2, relationshipType);
node1.createRelationshipTo(node2, relationshipType);
node1.createRelationshipTo(node2, relationshipType);
tx.success();
}
RecordStorageEngine recordStorageEngine = db.getDependencyResolver().resolveDependency(RecordStorageEngine.class);
NeoStores neoStores = recordStorageEngine.testAccessNeoStores();
RelationshipStore relationshipStore = neoStores.getRelationshipStore();
RelationshipRecord relationshipRecord = new RelationshipRecord(-1);
RelationshipRecord record = relationshipStore.getRecord(4, relationshipRecord, RecordLoad.FORCE);
record.setInUse(false);
relationshipStore.updateRecord(relationshipRecord);
} finally {
db.shutdown();
}
}
use of org.neo4j.graphdb.Node in project neo4j by neo4j.
the class Rmrel method exec.
@Override
protected Continuation exec(AppCommandParser parser, Session session, Output out) throws ShellException, RemoteException {
assertCurrentIsNode(session);
if (parser.arguments().isEmpty()) {
throw new ShellException("Must supply relationship id to delete as the first argument");
}
Node currentNode = this.getCurrent(session).asNode();
Relationship rel = findRel(currentNode, Long.parseLong(parser.arguments().get(0)));
rel.delete();
Node otherNode = rel.getOtherNode(currentNode);
boolean deleteOtherNodeIfEmpty = parser.options().containsKey("d");
if (deleteOtherNodeIfEmpty && !otherNode.hasRelationship()) {
out.println("Also deleted " + getDisplayName(getServer(), session, otherNode, false) + " due to it not having any relationships left");
otherNode.delete();
}
return Continuation.INPUT_COMPLETE;
}
use of org.neo4j.graphdb.Node in project neo4j by neo4j.
the class Ls method displayRelationships.
private void displayRelationships(AppCommandParser parser, NodeOrRelationship thing, Session session, Output out, boolean verbose, boolean quiet, Map<String, Object> filterMap, boolean caseInsensitiveFilters, boolean looseFilters, boolean brief) throws ShellException, RemoteException {
boolean sortByType = parser.options().containsKey("s");
Node node = thing.asNode();
Iterable<Relationship> relationships = getRelationships(node, filterMap, caseInsensitiveFilters, looseFilters, sortByType | brief);
if (brief) {
Iterator<Relationship> iterator = relationships.iterator();
if (!iterator.hasNext()) {
return;
}
Relationship sampleRelationship = iterator.next();
RelationshipType lastType = sampleRelationship.getType();
int currentCounter = 1;
while (iterator.hasNext()) {
Relationship rel = iterator.next();
if (!rel.isType(lastType)) {
displayBriefRelationships(thing, session, out, sampleRelationship, currentCounter);
sampleRelationship = rel;
lastType = sampleRelationship.getType();
currentCounter = 1;
} else {
currentCounter++;
}
}
displayBriefRelationships(thing, session, out, sampleRelationship, currentCounter);
} else {
Iterator<Relationship> iterator = relationships.iterator();
if (parser.options().containsKey("m")) {
iterator = wrapInLimitingIterator(parser, iterator, filterMap, caseInsensitiveFilters, looseFilters);
}
while (iterator.hasNext()) {
Relationship rel = iterator.next();
StringBuffer buf = new StringBuffer(getDisplayName(getServer(), session, thing, true));
String relDisplay = quiet ? "" : getDisplayName(getServer(), session, rel, verbose, true);
buf.append(withArrows(rel, relDisplay, thing.asNode()));
buf.append(getDisplayName(getServer(), session, rel.getOtherNode(node), true));
out.println(buf);
}
}
}
Aggregations