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) ;