Search in sources :

Example 21 with Tuple

use of org.apache.jena.atlas.lib.tuple.Tuple in project jena by apache.

the class DatasetGraphTDB method deleteAny.

@Override
public void deleteAny(Node g, Node s, Node p, Node o) {
    // Delete in batches.
    // That way, there is no active iterator when a delete
    // from the indexes happens.
    boolean isDftGraph = (g == null) || Quad.isDefaultGraph(g);
    NodeTupleTable t = chooseNodeTupleTable(g);
    @SuppressWarnings("unchecked") Tuple<NodeId>[] array = (Tuple<NodeId>[]) new Tuple<?>[sliceSize];
    while (true) {
        // Convert/cache s,p,o?
        // The Node Cache will cache these so don't worry unduly.
        Iterator<Tuple<NodeId>> iter = null;
        if (isDftGraph)
            iter = t.findAsNodeIds(s, p, o);
        else
            iter = t.findAsNodeIds(g, s, p, o);
        if (iter == null)
            // Finished?
            return;
        // Get a slice
        int len = 0;
        for (; len < sliceSize; len++) {
            if (!iter.hasNext())
                break;
            array[len] = iter.next();
        }
        // Delete them.
        for (int i = 0; i < len; i++) {
            t.getTupleTable().delete(array[i]);
            array[i] = null;
        }
        // Finished?
        if (len < sliceSize)
            break;
    }
}
Also used : NodeTupleTable(org.apache.jena.tdb.store.nodetupletable.NodeTupleTable) Tuple(org.apache.jena.atlas.lib.tuple.Tuple)

Example 22 with Tuple

use of org.apache.jena.atlas.lib.tuple.Tuple in project jena by apache.

the class DatasetPrefixesTDB method readPrefix.

@Override
public synchronized String readPrefix(String graphName, String prefix) {
    Node g = NodeFactory.createURI(graphName);
    Node p = NodeFactory.createLiteral(prefix);
    Iterator<Tuple<Node>> iter = nodeTupleTable.find(g, p, null);
    try {
        if (!iter.hasNext())
            return null;
        Tuple<Node> t = iter.next();
        Node uri = t.get(2);
        return uri.getURI();
    } finally {
        Iter.close(iter);
    }
}
Also used : Node(org.apache.jena.graph.Node) Tuple(org.apache.jena.atlas.lib.tuple.Tuple)

Example 23 with Tuple

use of org.apache.jena.atlas.lib.tuple.Tuple in project jena by apache.

the class DatasetPrefixesTDB method readPrefixMap.

@Override
public synchronized Map<String, String> readPrefixMap(String graphName) {
    Map<String, String> map = new HashMap<>();
    // One class of problem from mangled databases
    // (non-transactional, not shutdown cleanly)
    // ends up with NPE access to the node table from
    // the prefix index. As prefixes are "nice extras", we
    // keep calm and carry on in the face of exceptions.
    Node g = NodeFactory.createURI(graphName);
    Iterator<Tuple<Node>> iter = nodeTupleTable.find(g, null, null);
    for (; iter.hasNext(); ) {
        try {
            Tuple<Node> t = iter.next();
            String prefix = t.get(1).getLiteralLexicalForm();
            String uri = t.get(2).getURI();
            map.put(prefix, uri);
        } catch (Exception ex) {
            Log.warn(this, "Mangled prefix map: graph name='" + graphName + "'", ex);
        }
    }
    Iter.close(iter);
    return map;
}
Also used : Node(org.apache.jena.graph.Node) Tuple(org.apache.jena.atlas.lib.tuple.Tuple)

Example 24 with Tuple

use of org.apache.jena.atlas.lib.tuple.Tuple in project jena by apache.

the class TestQuadFilter method createFilter.

/**
 * Create a filter to exclude the graph http://example/g2
 */
private static Predicate<Tuple<NodeId>> createFilter(Dataset dataset) {
    return Txn.calculateRead(dataset, () -> {
        DatasetGraphTDB dsg = TDBInternal.getDatasetGraphTDB(dataset);
        final NodeTable nodeTable = dsg.getQuadTable().getNodeTupleTable().getNodeTable();
        final NodeId target = nodeTable.getNodeIdForNode(NodeFactory.createURI(graphToHide));
        // Check g slot. Exclude graphToHide
        return item -> !(item.len() == 4 && item.get(0).equals(target));
    });
}
Also used : TDBInternal(org.apache.jena.tdb.sys.TDBInternal) NodeFactory(org.apache.jena.graph.NodeFactory) org.apache.jena.query(org.apache.jena.query) DatasetGraph(org.apache.jena.sparql.core.DatasetGraph) Assert.assertNotNull(org.junit.Assert.assertNotNull) Predicate(java.util.function.Predicate) Test(org.junit.Test) SystemTDB(org.apache.jena.tdb.sys.SystemTDB) SSE(org.apache.jena.sparql.sse.SSE) NodeTable(org.apache.jena.tdb.store.nodetable.NodeTable) Txn(org.apache.jena.system.Txn) Quad(org.apache.jena.sparql.core.Quad) TDBFactory(org.apache.jena.tdb.TDBFactory) Tuple(org.apache.jena.atlas.lib.tuple.Tuple) Assert.assertEquals(org.junit.Assert.assertEquals) TDB(org.apache.jena.tdb.TDB) NodeTable(org.apache.jena.tdb.store.nodetable.NodeTable)

Example 25 with Tuple

use of org.apache.jena.atlas.lib.tuple.Tuple in project jena by apache.

the class TestStats method statsForGraph.

private StatsResults statsForGraph(NodeId gid) {
    Iterator<Tuple<NodeId>> iter = quads.find(gid, null, null, null);
    StatsCollectorNodeId stats = new StatsCollectorNodeId(nt);
    for (; iter.hasNext(); ) {
        Tuple<NodeId> t = iter.next();
        stats.record(t.get(0), t.get(1), t.get(2), t.get(3));
    }
    return stats.results();
}
Also used : NodeId(org.apache.jena.tdb.store.NodeId) StatsCollectorNodeId(org.apache.jena.tdb.solver.stats.StatsCollectorNodeId) Tuple(org.apache.jena.atlas.lib.tuple.Tuple) StatsCollectorNodeId(org.apache.jena.tdb.solver.stats.StatsCollectorNodeId)

Aggregations

Tuple (org.apache.jena.atlas.lib.tuple.Tuple)75 NodeId (org.apache.jena.tdb.store.NodeId)35 Node (org.apache.jena.graph.Node)22 TupleIndex (org.apache.jena.tdb.store.tupletable.TupleIndex)19 Test (org.junit.Test)19 BaseTest (org.apache.jena.atlas.junit.BaseTest)17 Quad (org.apache.jena.sparql.core.Quad)13 NodeId (org.apache.jena.tdb2.store.NodeId)10 Predicate (java.util.function.Predicate)8 Triple (org.apache.jena.graph.Triple)7 Iterator (java.util.Iterator)6 Binding (org.apache.jena.sparql.engine.binding.Binding)6 ArrayList (java.util.ArrayList)5 Iter (org.apache.jena.atlas.iterator.Iter)5 NodeTable (org.apache.jena.tdb.store.nodetable.NodeTable)5 NodeTupleTable (org.apache.jena.tdb.store.nodetupletable.NodeTupleTable)5 NodeTable (org.apache.jena.tdb2.store.nodetable.NodeTable)5 Function (java.util.function.Function)4 InternalErrorException (org.apache.jena.atlas.lib.InternalErrorException)4 TupleFactory (org.apache.jena.atlas.lib.tuple.TupleFactory)4