Search in sources :

Example 1 with Iter

use of org.apache.jena.atlas.iterator.Iter in project jena by apache.

the class PathLib method existsPath.

private static int existsPath(Graph graph, Node subject, Path path, final Node object, ExecutionContext execCxt) {
    if (!subject.isConcrete() || !object.isConcrete())
        throw new ARQInternalErrorException("Non concrete node for existsPath evaluation");
    Iterator<Node> iter = PathEval.eval(graph, subject, path, execCxt.getContext());
    Predicate<Node> filter = node -> Objects.equals(node, object);
    // See if we got to the node we're interested in finishing at.
    iter = Iter.filter(iter, filter);
    long x = Iter.count(iter);
    return (int) x;
}
Also used : Context(org.apache.jena.sparql.util.Context) Binding(org.apache.jena.sparql.engine.binding.Binding) ARQInternalErrorException(org.apache.jena.sparql.ARQInternalErrorException) BasicPattern(org.apache.jena.sparql.core.BasicPattern) QueryIterConcat(org.apache.jena.sparql.engine.iterator.QueryIterConcat) TriplePath(org.apache.jena.sparql.core.TriplePath) OpPath(org.apache.jena.sparql.algebra.op.OpPath) OpSequence(org.apache.jena.sparql.algebra.op.OpSequence) Graph(org.apache.jena.graph.Graph) ArrayList(java.util.ArrayList) QueryIterator(org.apache.jena.sparql.engine.QueryIterator) QueryIterYieldN(org.apache.jena.sparql.engine.iterator.QueryIterYieldN) Op(org.apache.jena.sparql.algebra.Op) GraphUtils(org.apache.jena.sparql.util.graph.GraphUtils) Iter(org.apache.jena.atlas.iterator.Iter) ExecutionContext(org.apache.jena.sparql.engine.ExecutionContext) BindingFactory(org.apache.jena.sparql.engine.binding.BindingFactory) PathEval(org.apache.jena.sparql.path.eval.PathEval) Iterator(java.util.Iterator) Predicate(java.util.function.Predicate) Triple(org.apache.jena.graph.Triple) QueryIterPlainWrapper(org.apache.jena.sparql.engine.iterator.QueryIterPlainWrapper) PropertyFunctionFactory(org.apache.jena.sparql.pfunction.PropertyFunctionFactory) PathBlock(org.apache.jena.sparql.core.PathBlock) Objects(java.util.Objects) List(java.util.List) Explain(org.apache.jena.sparql.mgt.Explain) Var(org.apache.jena.sparql.core.Var) Node(org.apache.jena.graph.Node) OpBGP(org.apache.jena.sparql.algebra.op.OpBGP) PropertyFunctionRegistry(org.apache.jena.sparql.pfunction.PropertyFunctionRegistry) ARQInternalErrorException(org.apache.jena.sparql.ARQInternalErrorException) Node(org.apache.jena.graph.Node)

Example 2 with Iter

use of org.apache.jena.atlas.iterator.Iter in project jena by apache.

the class BPlusTreeRewriter method writePackedDataBlocks.

// **** data block phase
/** Pack record blocks into linked RecordBufferPages */
private static Iterator<Pair<Integer, Record>> writePackedDataBlocks(Iterator<Record> records, final BPlusTree bpt) {
    if (debug) {
        divider();
        System.out.println("---- Data level");
    }
    final RecordBufferPageMgr mgr = bpt.getRecordsMgr().getRecordBufferPageMgr();
    Iterator<RecordBufferPage> iter = new RecordBufferPageLinker(new RecordBufferPagePacker(records, mgr));
    Function<RecordBufferPage, Pair<Integer, Record>> transform = rbp -> {
        mgr.put(rbp);
        Record r = rbp.getRecordBuffer().getHigh();
        r = bpt.getRecordFactory().createKeyOnly(r);
        return new Pair<>(rbp.getId(), r);
    };
    // Write and convert to split pairs.
    Iterator<Pair<Integer, Record>> iter2 = Iter.map(iter, transform);
    if (debug) {
        if (rebalance)
            System.out.println("Before rebalance (data)");
        iter2 = summarizeDataBlocks(iter2, bpt.getRecordsMgr().getRecordBufferPageMgr());
    //iter2 = printDataBlocks(iter2, bpt.getRecordsMgr().getRecordBufferPageMgr()) ;
    }
    if (rebalance)
        iter2 = new RebalenceDataEnd(iter2, bpt);
    // Testing - materialize - debug wil have done this
    if (materialize && !debug)
        iter2 = Iter.toList(iter2).iterator();
    if (debug && rebalance) {
        System.out.println("After rebalance (data)");
        iter2 = summarizeDataBlocks(iter2, bpt.getRecordsMgr().getRecordBufferPageMgr());
    //iter2 = printDataBlocks(iter2, bpt.getRecordsMgr().getRecordBufferPageMgr()) ;
    }
    return iter2;
}
Also used : IteratorWithBuffer(org.apache.jena.atlas.iterator.IteratorWithBuffer) Record(org.apache.jena.tdb.base.record.Record) Logger(org.slf4j.Logger) Iterator(java.util.Iterator) LoggerFactory(org.slf4j.LoggerFactory) BPlusTreeRewriterUtils.summarizeDataBlocks(org.apache.jena.tdb.index.bplustree.BPlusTreeRewriterUtils.summarizeDataBlocks) RecordFactory(org.apache.jena.tdb.base.record.RecordFactory) Function(java.util.function.Function) BlockMgr(org.apache.jena.tdb.base.block.BlockMgr) BPlusTreeRewriterUtils.printIndexBlocks(org.apache.jena.tdb.index.bplustree.BPlusTreeRewriterUtils.printIndexBlocks) BPlusTreeRewriterUtils.divider(org.apache.jena.tdb.index.bplustree.BPlusTreeRewriterUtils.divider) RecordBufferPageMgr(org.apache.jena.tdb.base.recordbuffer.RecordBufferPageMgr) Pair(org.apache.jena.atlas.lib.Pair) RecordBuffer(org.apache.jena.tdb.base.buffer.RecordBuffer) Iter(org.apache.jena.atlas.iterator.Iter) PtrBuffer(org.apache.jena.tdb.base.buffer.PtrBuffer) RecordBufferPage(org.apache.jena.tdb.base.recordbuffer.RecordBufferPage) RecordBufferPageMgr(org.apache.jena.tdb.base.recordbuffer.RecordBufferPageMgr) Record(org.apache.jena.tdb.base.record.Record) RecordBufferPage(org.apache.jena.tdb.base.recordbuffer.RecordBufferPage) Pair(org.apache.jena.atlas.lib.Pair)

Aggregations

Iterator (java.util.Iterator)2 Iter (org.apache.jena.atlas.iterator.Iter)2 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Objects (java.util.Objects)1 Function (java.util.function.Function)1 Predicate (java.util.function.Predicate)1 IteratorWithBuffer (org.apache.jena.atlas.iterator.IteratorWithBuffer)1 Pair (org.apache.jena.atlas.lib.Pair)1 Graph (org.apache.jena.graph.Graph)1 Node (org.apache.jena.graph.Node)1 Triple (org.apache.jena.graph.Triple)1 ARQInternalErrorException (org.apache.jena.sparql.ARQInternalErrorException)1 Op (org.apache.jena.sparql.algebra.Op)1 OpBGP (org.apache.jena.sparql.algebra.op.OpBGP)1 OpPath (org.apache.jena.sparql.algebra.op.OpPath)1 OpSequence (org.apache.jena.sparql.algebra.op.OpSequence)1 BasicPattern (org.apache.jena.sparql.core.BasicPattern)1 PathBlock (org.apache.jena.sparql.core.PathBlock)1 TriplePath (org.apache.jena.sparql.core.TriplePath)1