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
+}