X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.impl%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fimpl%2Fquery%2FStatements.java;h=ad4700aa826d6178f9447f81fa8e606ddfd13f0f;hb=d0e8f57df83c175bac2098412ee71646fb9ff0e9;hp=121653b0faa799ec3b4cadc153dfd481ef5a513d;hpb=061c58a485fbfda0732a8dc597582762a97012e4;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/Statements.java b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/Statements.java index 121653b0f..ad4700aa8 100644 --- a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/Statements.java +++ b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/Statements.java @@ -97,7 +97,7 @@ final public class Statements extends CollectionBinaryQuery @Override public void execute(ReadGraphImpl graph, int type) throws DatabaseException { if(result == null) { - result = QueryCache.resultAssertedStatements(graph, type, r2, entry, null, NOPT); + result = QueryCache.resultAssertedStatements(graph, type, r2, entry, null); } else { if (first) { IntArray ia = result; @@ -107,7 +107,7 @@ final public class Statements extends CollectionBinaryQuery } first = false; } - IntArray ia = QueryCache.resultAssertedStatements(graph, type, r2, entry, null, NOPT); + IntArray ia = QueryCache.resultAssertedStatements(graph, type, r2, entry, null); if(ia.data != null) { for(int i = 0;i < ia.sizeOrData ; i+=3) addStatement(ia.data[i],ia.data[i+1],ia.data[i+2]); } @@ -135,6 +135,10 @@ final public class Statements extends CollectionBinaryQuery final static private void forSingleAssertion(ReadGraphImpl graph, final int r1, final int r2, final Statements entry, final TripleIntProcedure procedure) throws DatabaseException { + if(entry != null) { + assert(entry.isPending()); + } + IntArray map = getAssertionMap(graph, r1, r2, entry); if(map == null) { if(entry != null) entry.finish(graph, procedure); @@ -170,7 +174,7 @@ final public class Statements extends CollectionBinaryQuery IntSet candidateIs = null; try { - candidateIs = QueryCache.resultSuperTypes(graph, candidateS, entry, null, NOP); + candidateIs = QueryCache.resultSuperTypes(graph, candidateS, entry, null); } catch (DatabaseException e) { if(entry != null) entry.except(e); procedure.exception(graph, e); @@ -202,7 +206,7 @@ final public class Statements extends CollectionBinaryQuery IntSet nextIs = null; try { - nextIs = QueryCache.resultSuperTypes(graph, nextS, entry, null, NOP); + nextIs = QueryCache.resultSuperTypes(graph, nextS, entry, null); } catch (DatabaseException e) { if(entry != null) entry.except(e); procedure.exception(graph, e); @@ -322,7 +326,7 @@ final public class Statements extends CollectionBinaryQuery final AtomicBoolean found = new AtomicBoolean(false); // Note! The dependency is intentionally cut! - IntSet direct = QueryCache.resultDirectPredicates(graph, r1, null, null, QueryCache.emptyProcedureDirectPredicates); + IntSet direct = QueryCache.resultDirectPredicates(graph, r1, null, null); direct.forEach(graph, new SyncIntProcedure() { @Override @@ -554,7 +558,7 @@ final public class Statements extends CollectionBinaryQuery } else { // Note! The dependency is intentionally cut! - IntSet direct = QueryCache.resultDirectPredicates(graph, r1, null, null, QueryCache.emptyProcedureDirectPredicates); + IntSet direct = QueryCache.resultDirectPredicates(graph, r1, null, null); direct.forEach(graph, new SyncIntProcedure() { @Override @@ -599,7 +603,7 @@ final public class Statements extends CollectionBinaryQuery try { - IntSet result = QueryCache.resultSuperRelations(graph, pred2, entry, null, null); + IntSet result = QueryCache.resultSuperRelations(graph, pred2, entry, null); if(result.contains(r2)) { inc(); @@ -647,15 +651,13 @@ final public class Statements extends CollectionBinaryQuery } } - - @Override - public Object compute(ReadGraphImpl graph, final TripleIntProcedure procedure) throws DatabaseException { - computeForEach(graph, r1(), r2(), this, procedure); - return getResult(); - } public static void computeForEach(ReadGraphImpl graph, final int r1, final int r2, final Statements entry, final TripleIntProcedure procedure) throws DatabaseException { + if(entry != null) { + assert(entry.isPending()); + } + QueryCache.runnerRelationInfoQuery(graph, r2, entry, null, new InternalProcedure() { @Override @@ -690,6 +692,7 @@ final public class Statements extends CollectionBinaryQuery synchronized(this) { setReady(); + //new Exception(toString() + " is READY").printStackTrace(); } IntArray v = (IntArray)getResult(); @@ -761,7 +764,7 @@ final public class Statements extends CollectionBinaryQuery @Override public void recompute(ReadGraphImpl graph) throws DatabaseException { - compute(graph, new TripleIntProcedureAdapter() { + computeForEach(graph, r1(), r2(), this, new TripleIntProcedureAdapter() { @Override public void finished(ReadGraphImpl graph) {