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/03/21 13:50:36 UTC

jena git commit: JENA-1158: Make the union graph a graphView(Quad.unionGraph).

Repository: jena
Updated Branches:
  refs/heads/master 4b92783f6 -> 6a68d3f29


JENA-1158: Make the union graph a graphView(Quad.unionGraph).

Don't rely on the default implementation in DatasetGraphBase.


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

Branch: refs/heads/master
Commit: 6a68d3f29d890aaf95ee61b76395b9dfe65f944f
Parents: 4b92783
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Mar 15 11:31:46 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Mar 21 13:50:16 2018 +0000

----------------------------------------------------------------------
 .../java/org/apache/jena/sparql/core/DatasetGraphBase.java     | 6 ++++--
 .../src/main/java/org/apache/jena/sparql/core/GraphView.java   | 6 ++++--
 .../org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java  | 5 +++++
 .../main/java/org/apache/jena/tdb2/store/DatasetGraphTDB.java  | 5 +++++
 .../main/java/org/apache/jena/tdb/store/DatasetGraphTDB.java   | 6 +++++-
 .../apache/jena/tdb/transaction/DatasetGraphTransaction.java   | 6 ++++++
 6 files changed, 29 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/6a68d3f2/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java
index 1ebc4ab..ed120b9 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphBase.java
@@ -69,9 +69,11 @@ abstract public class DatasetGraphBase implements DatasetGraph
     @Override
     public Graph getUnionGraph() {
         // Implementations are encouraged to implement an efficent
-        // {@code DatasetGraphBase.findQuadsInUnionGraph} or
+        // named graph for Quad.unionGraph, and this operation that
+        // does not require the full "distinct()" used by the general purpose
+        // GraphUnionRead. See also
+        // {@code DatasetGraphBase.findQuadsInUnionGraph} and
         // {@code findNG(Quad.unionGraph, Node.ANY, Node.ANY, Node.ANY)}
-        // for a distinct iterator (e.g. avoid calling "distinct()" by not creating duplicates).
         return GraphOps.unionGraph(this);
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6a68d3f2/jena-arq/src/main/java/org/apache/jena/sparql/core/GraphView.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/GraphView.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/GraphView.java
index 6d110a0..d1ae1b2 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/GraphView.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/GraphView.java
@@ -28,6 +28,8 @@ import org.apache.jena.graph.TransactionHandler;
 import org.apache.jena.graph.Triple ;
 import org.apache.jena.graph.impl.GraphBase ;
 import org.apache.jena.riot.other.GLib ;
+import org.apache.jena.shared.AddDeniedException;
+import org.apache.jena.shared.DeleteDeniedException;
 import org.apache.jena.shared.JenaException ;
 import org.apache.jena.shared.PrefixMapping ;
 import org.apache.jena.shared.impl.PrefixMappingImpl ;
@@ -146,7 +148,7 @@ public class GraphView extends GraphBase implements NamedGraph, Sync
     public void performAdd( Triple t ) { 
         Node g = graphNode(gn) ;
         if ( Quad.isUnionGraph(g) )
-            throw new GraphViewException("Can't update the default union graph of a dataset") ; 
+            throw new AddDeniedException("Can't update the union graph of a dataset") ; 
         Node s = t.getSubject() ;
         Node p = t.getPredicate() ;
         Node o = t.getObject() ;
@@ -157,7 +159,7 @@ public class GraphView extends GraphBase implements NamedGraph, Sync
     public void performDelete( Triple t ) {
         Node g = graphNode(gn) ;
         if ( Quad.isUnionGraph(g) )
-            throw new GraphViewException("Can't update the default union graph of a dataset") ; 
+            throw new DeleteDeniedException("Can't update the union graph of a dataset") ; 
         Node s = t.getSubject() ;
         Node p = t.getPredicate() ;
         Node o = t.getObject() ;

http://git-wip-us.apache.org/repos/asf/jena/blob/6a68d3f2/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
index e7823b9..27016be 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
@@ -343,6 +343,11 @@ public class DatasetGraphInMemory extends DatasetGraphTriplesQuads implements Tr
         return getGraph(Quad.defaultGraphNodeGenerated);
     }
 
+    @Override
+    public Graph getUnionGraph() {
+        return getGraph(Quad.unionGraph);
+    }
+    
     private Consumer<Graph> addGraph(final Node name) {
         return g -> g.find().mapWith(t -> new Quad(name, t)).forEachRemaining(this::add);
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/6a68d3f2/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/DatasetGraphTDB.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/DatasetGraphTDB.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/DatasetGraphTDB.java
index 904bc50..8a37f74 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/DatasetGraphTDB.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/DatasetGraphTDB.java
@@ -271,6 +271,11 @@ public class DatasetGraphTDB extends DatasetGraphTriplesQuads
     }
 
     @Override
+    public Graph getUnionGraph() {
+        return getGraph(Quad.unionGraph);
+    }
+
+    @Override
     public Graph getGraph(Node graphNode) {
         checkNotClosed();
         return new GraphTDB(this, graphNode);

http://git-wip-us.apache.org/repos/asf/jena/blob/6a68d3f2/jena-tdb/src/main/java/org/apache/jena/tdb/store/DatasetGraphTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/store/DatasetGraphTDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/store/DatasetGraphTDB.java
index f960e99..7d62863 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/store/DatasetGraphTDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/store/DatasetGraphTDB.java
@@ -144,13 +144,17 @@ public class DatasetGraphTDB extends DatasetGraphTriplesQuads
         return result ;
     }
 
-    // When not yet transactional, these can be called??
+    // These should not be called in normal use - they are intercepted by DatasetGraphTransaction. 
     
     @Override
     public Graph getDefaultGraph()
     { return new GraphNonTxnTDB(this, null) ; }
 
     @Override
+    public Graph getUnionGraph()
+    { return getGraph(Quad.unionGraph); }
+
+    @Override
     public Graph getGraph(Node graphNode)
     { return new GraphNonTxnTDB(this, graphNode) ; }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6a68d3f2/jena-tdb/src/main/java/org/apache/jena/tdb/transaction/DatasetGraphTransaction.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/transaction/DatasetGraphTransaction.java b/jena-tdb/src/main/java/org/apache/jena/tdb/transaction/DatasetGraphTransaction.java
index 7eedb4e..bd5ba8b 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/transaction/DatasetGraphTransaction.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/transaction/DatasetGraphTransaction.java
@@ -28,6 +28,7 @@ import org.apache.jena.query.TxnType;
 import org.apache.jena.sparql.JenaTransactionException ;
 import org.apache.jena.sparql.core.DatasetGraph ;
 import org.apache.jena.sparql.core.DatasetGraphTrackActive ;
+import org.apache.jena.sparql.core.Quad;
 import org.apache.jena.sparql.util.Context ;
 import org.apache.jena.tdb.StoreConnection ;
 import org.apache.jena.tdb.TDB ;
@@ -199,6 +200,11 @@ import org.apache.jena.tdb.store.GraphTxnTDB ;
     }
 
     @Override
+    public Graph getUnionGraph() {
+        return getGraph(Quad.unionGraph);
+    }
+    
+    @Override
     public Graph getGraph(Node graphNode) {      
         if ( sConn.haveUsedInTransaction() )
             return new GraphTxnTDB(this, graphNode) ;