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/08/31 12:04:54 UTC
[04/27] jena git commit: Copy dataset context to execution for query
over model
Copy dataset context to execution for query over model
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/d8e51a82
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d8e51a82
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d8e51a82
Branch: refs/heads/master
Commit: d8e51a82fea80ea21e7cdef8445dc00adec42ee2
Parents: 0a0b831
Author: Andy Seaborne <an...@apache.org>
Authored: Mon Aug 20 20:34:04 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Aug 23 17:15:05 2018 +0100
----------------------------------------------------------------------
.../jena/query/QueryExecutionFactory.java | 29 ++++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/d8e51a82/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java b/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java
index 2414d3a..f784d1a 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java
@@ -22,8 +22,11 @@ import java.util.List ;
import org.apache.http.client.HttpClient;
import org.apache.http.protocol.HttpContext;
import org.apache.jena.atlas.logging.Log ;
+import org.apache.jena.graph.Graph;
+import org.apache.jena.graph.impl.WrappedGraph;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.sparql.core.DatasetGraph ;
+import org.apache.jena.sparql.core.GraphView;
import org.apache.jena.sparql.engine.Plan ;
import org.apache.jena.sparql.engine.QueryEngineFactory ;
import org.apache.jena.sparql.engine.QueryEngineRegistry ;
@@ -31,6 +34,7 @@ import org.apache.jena.sparql.engine.QueryExecutionBase ;
import org.apache.jena.sparql.engine.binding.Binding ;
import org.apache.jena.sparql.engine.binding.BindingRoot ;
import org.apache.jena.sparql.engine.http.QueryEngineHTTP ;
+import org.apache.jena.sparql.graph.GraphWrapper;
import org.apache.jena.sparql.syntax.Element ;
import org.apache.jena.sparql.util.Context ;
@@ -126,7 +130,7 @@ public class QueryExecutionFactory
static public QueryExecution create(Query query, Model model) {
checkArg(query) ;
checkArg(model) ;
- return make(query, DatasetFactory.wrap(model)) ;
+ return make(query, model) ;
}
/** Create a QueryExecution to execute over the Model.
@@ -569,7 +573,28 @@ public class QueryExecutionFactory
}
static protected QueryExecution make(Query query) {
- return make(query, null) ;
+ return make(query, (Dataset)null) ;
+ }
+
+ protected static QueryExecution make(Query query, Model model) {
+ Dataset dataset = DatasetFactory.wrap(model);
+ Graph g = unwrap(model.getGraph());
+ if ( g instanceof GraphView ) {
+ GraphView gv = (GraphView)model.getGraph();
+ // Copy context of the storage dataset to the wrapper dataset.
+ dataset.getContext().putAll(gv.getDataset().getContext());
+ }
+ return make(query, dataset);
+ }
+
+ private static Graph unwrap(Graph graph) {
+ for(;;) {
+ if ( graph instanceof GraphWrapper )
+ graph = ((GraphWrapper)graph).get();
+ else if ( graph instanceof WrappedGraph )
+ graph = ((WrappedGraph)graph).getWrapped();
+ else return graph;
+ }
}
protected static QueryExecution make(Query query, Dataset dataset)