You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2018/04/25 10:09:53 UTC

[2/7] jena git commit: StageGenerator for TDB2 to use underlying graph

StageGenerator for TDB2 to use underlying graph


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/ee2f476d
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/ee2f476d
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/ee2f476d

Branch: refs/heads/master
Commit: ee2f476d86981f5ea5aa0ae4bd202021e2106b3c
Parents: 3def363
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Apr 21 18:31:01 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Apr 21 18:31:01 2018 +0100

----------------------------------------------------------------------
 .../apache/jena/tdb2/solver/StageGeneratorDirectTDB.java |  8 +++++++-
 .../apache/jena/tdb2/store/DatasetGraphSwitchable.java   |  4 +++-
 .../org/apache/jena/tdb2/store/GraphViewSwitchable.java  | 11 +++++++++--
 3 files changed, 19 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/ee2f476d/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/StageGeneratorDirectTDB.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/StageGeneratorDirectTDB.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/StageGeneratorDirectTDB.java
index 1e081f3..bb9ac10 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/StageGeneratorDirectTDB.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/solver/StageGeneratorDirectTDB.java
@@ -27,6 +27,7 @@ import org.apache.jena.sparql.engine.ExecutionContext ;
 import org.apache.jena.sparql.engine.QueryIterator ;
 import org.apache.jena.sparql.engine.main.StageGenerator ;
 import org.apache.jena.tdb2.store.GraphTDB;
+import org.apache.jena.tdb2.store.GraphViewSwitchable;
 import org.apache.jena.tdb2.store.NodeId;
 
 /** Execute TDB requests directly -- no reordering
@@ -45,9 +46,14 @@ public class StageGeneratorDirectTDB implements StageGenerator
     @Override
     public QueryIterator execute(BasicPattern pattern, QueryIterator input, ExecutionContext execCxt)
     {
-        // --- In case this isn't for TDB
+        // --- In case this isn't for TDB2
         Graph g = execCxt.getActiveGraph() ;
         
+        if ( g instanceof GraphViewSwitchable ) {
+            GraphViewSwitchable gvs = (GraphViewSwitchable)g;
+            g = gvs.getGraph();
+        }
+        
         if ( ! ( g instanceof GraphTDB ) )
             // Not us - bounce up the StageGenerator chain
             return above.execute(pattern, input, execCxt) ;

http://git-wip-us.apache.org/repos/asf/jena/blob/ee2f476d/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/DatasetGraphSwitchable.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/DatasetGraphSwitchable.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/DatasetGraphSwitchable.java
index f27718c..cfd4792 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/DatasetGraphSwitchable.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/DatasetGraphSwitchable.java
@@ -32,6 +32,7 @@ import org.apache.jena.shared.impl.PrefixMappingImpl;
 import org.apache.jena.sparql.core.DatasetGraph ;
 import org.apache.jena.sparql.core.DatasetGraphWrapper;
 import org.apache.jena.sparql.core.DatasetPrefixStorage ;
+import org.apache.jena.sparql.core.Quad;
 
 final
 public class DatasetGraphSwitchable extends DatasetGraphWrapper 
@@ -111,7 +112,8 @@ public class DatasetGraphSwitchable extends DatasetGraphWrapper
     
     @Override
     public Graph getGraph(Node gn) {
-        return ngCache.getOrFill(gn, ()->GraphViewSwitchable.createNamedGraph(this, gn));
+        Node key = ( gn != null ) ? gn : Quad.defaultGraphNodeGenerated;
+        return ngCache.getOrFill(gn, ()->GraphViewSwitchable.createNamedGraph(this, key));
     }
 
     // TDB2 specific.

http://git-wip-us.apache.org/repos/asf/jena/blob/ee2f476d/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/GraphViewSwitchable.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/GraphViewSwitchable.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/GraphViewSwitchable.java
index 760d9e4..4d5229f 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/GraphViewSwitchable.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/GraphViewSwitchable.java
@@ -20,6 +20,7 @@ package org.apache.jena.tdb2.store;
 
 import java.util.Map ;
 
+import org.apache.jena.graph.Graph;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.TransactionHandler;
 import org.apache.jena.shared.PrefixMapping ;
@@ -80,6 +81,13 @@ public class GraphViewSwitchable extends GraphView {
     public DatasetGraphSwitchable getDataset() {
         return getx() ;
     }
+    
+    /** Return the {@code Graph} from the underlying switchable.
+     *  Do not hold onto this reference across switches. 
+     */
+    public Graph getGraph() {
+        return getx().getGraph(getGraphName()) ;
+    }
 
     // DatasetPrefixStorage specific with getting the DatasetPrefixStorage
     // done at the point the operation happens.
@@ -138,5 +146,4 @@ public class GraphViewSwitchable extends GraphView {
             return prefixMapping().getNsPrefixMap();
         }
     }
-
-}
\ No newline at end of file
+}