Search in sources :

Example 86 with Node

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);
}
Also used : PropertyKeyTokenStore(org.neo4j.kernel.impl.store.PropertyKeyTokenStore) Transaction(org.neo4j.graphdb.Transaction) RecordStorageEngine(org.neo4j.kernel.impl.storageengine.impl.recordstorage.RecordStorageEngine) Node(org.neo4j.graphdb.Node) NeoStores(org.neo4j.kernel.impl.store.NeoStores) Label(org.neo4j.graphdb.Label) DependencyResolver(org.neo4j.graphdb.DependencyResolver) Before(org.junit.Before)

Example 87 with Node

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();
}
Also used : LabelTokenStore(org.neo4j.kernel.impl.store.LabelTokenStore) PropertyKeyTokenStore(org.neo4j.kernel.impl.store.PropertyKeyTokenStore) SchemaIndexProvider(org.neo4j.kernel.api.index.SchemaIndexProvider) Transaction(org.neo4j.graphdb.Transaction) SchemaStore(org.neo4j.kernel.impl.store.SchemaStore) RecordStorageEngine(org.neo4j.kernel.impl.storageengine.impl.recordstorage.RecordStorageEngine) Node(org.neo4j.graphdb.Node) NeoStores(org.neo4j.kernel.impl.store.NeoStores) Label(org.neo4j.graphdb.Label) DependencyResolver(org.neo4j.graphdb.DependencyResolver) BeforeClass(org.junit.BeforeClass)

Example 88 with Node

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();
    }
}
Also used : GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) Transaction(org.neo4j.graphdb.Transaction) RecordStorageEngine(org.neo4j.kernel.impl.storageengine.impl.recordstorage.RecordStorageEngine) Node(org.neo4j.graphdb.Node) NeoStores(org.neo4j.kernel.impl.store.NeoStores) TestGraphDatabaseFactory(org.neo4j.test.TestGraphDatabaseFactory) RelationshipType(org.neo4j.graphdb.RelationshipType) RelationshipStore(org.neo4j.kernel.impl.store.RelationshipStore) RelationshipRecord(org.neo4j.kernel.impl.store.record.RelationshipRecord)

Example 89 with Node

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;
}
Also used : Node(org.neo4j.graphdb.Node) Relationship(org.neo4j.graphdb.Relationship) ShellException(org.neo4j.shell.ShellException)

Example 90 with Node

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);
        }
    }
}
Also used : Node(org.neo4j.graphdb.Node) Relationship(org.neo4j.graphdb.Relationship) RelationshipType(org.neo4j.graphdb.RelationshipType)

Aggregations

Node (org.neo4j.graphdb.Node)1281 Test (org.junit.Test)781 Transaction (org.neo4j.graphdb.Transaction)540 Relationship (org.neo4j.graphdb.Relationship)375 GraphDatabaseService (org.neo4j.graphdb.GraphDatabaseService)146 NotFoundException (org.neo4j.graphdb.NotFoundException)78 File (java.io.File)65 LinkedList (java.util.LinkedList)60 RelationshipType (org.neo4j.graphdb.RelationshipType)58 HashMap (java.util.HashMap)57 Label (org.neo4j.graphdb.Label)57 Path (org.neo4j.graphdb.Path)52 KernelTransaction (org.neo4j.kernel.api.KernelTransaction)46 HashSet (java.util.HashSet)45 Map (java.util.Map)45 WeightedPath (org.neo4j.graphalgo.WeightedPath)37 TestGraphDatabaseFactory (org.neo4j.test.TestGraphDatabaseFactory)35 ArrayList (java.util.ArrayList)30 List (java.util.List)27 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)26