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 2012/08/13 17:32:28 UTC

svn commit: r1372468 - in /jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb: solver/ store/ transaction/

Author: andy
Date: Mon Aug 13 15:32:27 2012
New Revision: 1372468

URL: http://svn.apache.org/viewvc?rev=1372468&view=rev
Log:
Clean up graphs-over-datasets in TDB.
Remove unnecessary ties of graphs to implementation of TDB as quad/triple tables.

Modified:
    jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/solver/OpExecutorTDB.java
    jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java
    jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphNamedTDB.java
    jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDB.java
    jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java
    jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTriplesTDB.java
    jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java

Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/solver/OpExecutorTDB.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/solver/OpExecutorTDB.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/solver/OpExecutorTDB.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/solver/OpExecutorTDB.java Mon Aug 13 15:32:27 2012
@@ -194,7 +194,7 @@ public class OpExecutorTDB extends OpExe
         if ( pattern.size() >= 2 )
         {
             // Must be 2 or triples to reorder. 
-            ReorderTransformation transform = graph.getReorderTransform() ;
+            ReorderTransformation transform = graph.getDataset().getReorderTransform() ;
             if ( transform != null )
             {
                 QueryIterPeek peek = QueryIterPeek.create(input, execCxt) ;
@@ -229,7 +229,7 @@ public class OpExecutorTDB extends OpExe
             return optimizeExecuteTriples(ds.getEffectiveDefaultGraph(), input, bgp, exprs, execCxt) ;
         
         // ---- Execute quads+filters
-        ReorderTransformation transform = ds.getTransform() ;
+        ReorderTransformation transform = ds.getReorderTransform() ;
 
         if ( transform != null )
         {
@@ -309,19 +309,11 @@ public class OpExecutorTDB extends OpExe
 
         // Not default storage graph.
         // ---- Union (RDF Merge) of named graphs
+
+        if ( Quad.isUnionGraph(gn) ) 
+            return Node.ANY ;
         boolean doingUnion = false ;
-    
-//        if ( isUnionDefaultGraph && Quad.isQuadDefaultGraphNode(gn) ) 
-//            // Implicit: default graph is union of named graphs.  (rewritten - does not occur). 
-//            doingUnion = true ;
-    
-        if ( gn.equals(Quad.unionGraph) )
-            // Explicit name of the union of named graphs
-            doingUnion = true ;
-    
-        if ( doingUnion )
-            // Set the "any" graph node.
-            gn = Node.ANY ;
+        
         return gn ;
     }
 

Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java Mon Aug 13 15:32:27 2012
@@ -46,7 +46,7 @@ import com.hp.hpl.jena.update.GraphStore
 import com.hp.hpl.jena.update.UpdateRequest ;
 
 /** TDB Dataset - this is the class that creates a dataset over the storage via
- *  TripleTable, QuadTable and prefixes.  Any transactions
+ *  TripleTable, QuadTable and prefixes. These may be transactional.
  *  
  *  See also:
  *  <ul>
@@ -235,7 +235,13 @@ public class DatasetGraphTDB extends Dat
 //        return PropertyUtils.getPropertyAsInteger(config.properties, key, dftValue) ;
 //    }
 //
-    public ReorderTransformation getTransform()     { return transform ; }
+    /**
+     * @deprecate  Use getReorderTransform
+     */
+    @Deprecated
+    public ReorderTransformation getTransform()     { return getReorderTransform() ; }
+    
+    public ReorderTransformation getReorderTransform()     { return transform ; }
     
     public DatasetPrefixesTDB getPrefixes()       { return prefixes ; }
 

Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphNamedTDB.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphNamedTDB.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphNamedTDB.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphNamedTDB.java Mon Aug 13 15:32:27 2012
@@ -113,9 +113,9 @@ public class GraphNamedTDB extends Graph
         // Explicitly named default graph
         if ( isDefaultGraph(graphNode) )
             // Default graph.
-            return graphBaseFindWorker(getDataset().getTripleTable(), m) ;
+            return graphBaseFindDft(getDataset(), m) ;
         // Includes union graph
-        return graphBaseFindWorker(getDataset(), graphNode, m) ;
+        return graphBaseFindNG(getDataset(), graphNode, m) ;
     }
     
     @Override
@@ -158,15 +158,6 @@ public class GraphNamedTDB extends Graph
     }
 
     @Override
-    public Tuple<Node> asTuple(Triple triple)
-    {
-//        if ( getGraphNode() == null )
-//            return Tuple.create(triple.getSubject(), triple.getPredicate(), triple.getObject()) ;
-//        else
-            return Tuple.create(getGraphNode(), triple.getSubject(), triple.getPredicate(), triple.getObject()) ;
-    }
-
-    @Override
     protected final Logger getLog() { return log ; }
     
     @Override

Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDB.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDB.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDB.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDB.java Mon Aug 13 15:32:27 2012
@@ -20,21 +20,16 @@ package com.hp.hpl.jena.tdb.store;
 
 import org.openjena.atlas.lib.Closeable ;
 import org.openjena.atlas.lib.Sync ;
-import org.openjena.atlas.lib.Tuple ;
 
 import com.hp.hpl.jena.graph.Graph ;
 import com.hp.hpl.jena.graph.Node ;
-import com.hp.hpl.jena.graph.Triple ;
 import com.hp.hpl.jena.shared.Lock ;
-import com.hp.hpl.jena.sparql.engine.optimizer.reorder.Reorderable ;
-import com.hp.hpl.jena.tdb.base.file.Location ;
 import com.hp.hpl.jena.tdb.nodetable.NodeTupleTable ;
 import com.hp.hpl.jena.tdb.sys.Session ;
 
-public interface GraphTDB extends Graph, Closeable, Sync, Reorderable, Session
+public interface GraphTDB extends Graph, Closeable, Sync, Session
 {
     public NodeTupleTable getNodeTupleTable() ;
-    public Tuple<Node> asTuple(Triple triple) ;
     
     /** Get a lock that is shared for all graphs from the same dataset (it is the dataset lock) */
     public Lock getLock() ;
@@ -45,11 +40,6 @@ public interface GraphTDB extends Graph,
      */ 
     public Node getGraphNode() ;
     
-    /** Return the TDB-backed daatset for this graph.
-     *  Maybe null - indicating it's a simple graph backed by TDB
-     *  (and also the concrete default graph) 
-     */
+    /** Return the TDB-backed dataset for this graph */
     public DatasetGraphTDB getDataset() ;
-    
-    public Location getLocation() ; 
 }

Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java Mon Aug 13 15:32:27 2012
@@ -25,21 +25,13 @@ import java.util.Iterator ;
 import org.openjena.atlas.iterator.Iter ;
 import org.slf4j.Logger ;
 
-import com.hp.hpl.jena.graph.BulkUpdateHandler ;
-import com.hp.hpl.jena.graph.Capabilities ;
-import com.hp.hpl.jena.graph.Node ;
-import com.hp.hpl.jena.graph.Reifier ;
-import com.hp.hpl.jena.graph.TransactionHandler ;
-import com.hp.hpl.jena.graph.Triple ;
-import com.hp.hpl.jena.graph.TripleMatch ;
+import com.hp.hpl.jena.graph.* ;
 import com.hp.hpl.jena.graph.query.QueryHandler ;
 import com.hp.hpl.jena.shared.Lock ;
 import com.hp.hpl.jena.sparql.core.Quad ;
-import com.hp.hpl.jena.sparql.engine.optimizer.reorder.ReorderTransformation ;
 import com.hp.hpl.jena.sparql.graph.GraphBase2 ;
 import com.hp.hpl.jena.sparql.graph.Reifier2 ;
 import com.hp.hpl.jena.tdb.TDB ;
-import com.hp.hpl.jena.tdb.base.file.Location ;
 import com.hp.hpl.jena.tdb.graph.BulkUpdateHandlerTDB ;
 import com.hp.hpl.jena.tdb.graph.QueryHandlerTDB ;
 import com.hp.hpl.jena.tdb.graph.TransactionHandlerTDB ;
@@ -65,13 +57,6 @@ public abstract class GraphTDBBase exten
         this.graphNode = graphName ;
     }
     
-    /** Reorder processor - may be null, for "none" */
-    @Override
-    public final ReorderTransformation getReorderTransform()    { return dataset.getTransform() ; }
-    
-    @Override
-    public final Location getLocation()                         { return dataset.getLocation() ; }
-    
     @Override
     public final Node getGraphNode()                            { return graphNode ; }
     
@@ -121,19 +106,17 @@ public abstract class GraphTDBBase exten
         }
     }
     
-    protected static ExtendedIterator<Triple> graphBaseFindWorker(TripleTable tripleTable, TripleMatch m)
+    protected static ExtendedIterator<Triple> graphBaseFindDft(DatasetGraphTDB dataset, TripleMatch m)
     {
-        // See also SolverLib.execute
-        Iterator<Triple> iter = tripleTable.find(m.getMatchSubject(), m.getMatchPredicate(), m.getMatchObject()) ;
-        if ( iter == null )
+        Iterator<Quad> iterQuads = dataset.find(Quad.defaultGraphIRI, m.getMatchSubject(), m.getMatchPredicate(), m.getMatchObject()) ;
+        if ( iterQuads == null )
             return com.hp.hpl.jena.util.iterator.NullIterator.instance() ;
-
-        // Look now!
-        boolean b = iter.hasNext() ;
-        return WrappedIterator.createNoRemove(iter) ;
+        // Can't be duplicates - fixed graph node..
+        Iterator<Triple> iterTriples = new ProjectQuadsToTriples(Quad.defaultGraphIRI , iterQuads) ;
+        return WrappedIterator.createNoRemove(iterTriples) ;
     }
     
-    protected static ExtendedIterator<Triple> graphBaseFindWorker(DatasetGraphTDB dataset, Node graphNode, TripleMatch m)
+    protected static ExtendedIterator<Triple> graphBaseFindNG(DatasetGraphTDB dataset, Node graphNode, TripleMatch m)
     {
         Node gn = graphNode ;
         // Explicitly named union graph. 
@@ -194,7 +177,7 @@ public abstract class GraphTDBBase exten
         { 
             Quad q = iter.next();
             if ( graphNode != null && ! q.getGraph().equals(graphNode))
-                throw new InternalError("ProjectQuadsToTriples: Quads from unexpected graph") ;
+                throw new InternalError("ProjectQuadsToTriples: Quads from unexpected graph (expected="+graphNode+", got="+q.getGraph()+")") ;
             return q.asTriple() ;
         }
         @Override
@@ -202,7 +185,7 @@ public abstract class GraphTDBBase exten
     }
     
     @Override
-    public BulkUpdateHandler getBulkUpdateHandler() {return bulkUpdateHandler ; }
+    public BulkUpdateHandler getBulkUpdateHandler() { return bulkUpdateHandler ; }
 
     @Override
     public Capabilities getCapabilities()
@@ -239,8 +222,4 @@ public abstract class GraphTDBBase exten
     @Override
     public TransactionHandler getTransactionHandler()
     { return transactionHandler ; }
-    
-//    protected GraphStatisticsHandler createStatisticsHandler()
-//    { return null; }
- 
 }

Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTriplesTDB.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTriplesTDB.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTriplesTDB.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTriplesTDB.java Mon Aug 13 15:32:27 2012
@@ -18,20 +18,19 @@
 
 package com.hp.hpl.jena.tdb.store;
 
-import java.util.Iterator;
+import java.util.Iterator ;
 
 import org.openjena.atlas.lib.Tuple ;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.slf4j.Logger ;
+import org.slf4j.LoggerFactory ;
 
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.Triple;
-import com.hp.hpl.jena.graph.TripleMatch;
-import com.hp.hpl.jena.shared.PrefixMapping;
+import com.hp.hpl.jena.graph.Triple ;
+import com.hp.hpl.jena.graph.TripleMatch ;
+import com.hp.hpl.jena.shared.PrefixMapping ;
 import com.hp.hpl.jena.sparql.core.DatasetPrefixStorage ;
 import com.hp.hpl.jena.sparql.util.Utils ;
 import com.hp.hpl.jena.tdb.nodetable.NodeTupleTable ;
-import com.hp.hpl.jena.util.iterator.ExtendedIterator;
+import com.hp.hpl.jena.util.iterator.ExtendedIterator ;
 
 /** A graph implementation that uses a triple table - free-standing graph or default graph of dataset */
 public class GraphTriplesTDB extends GraphTDBBase
@@ -69,7 +68,7 @@ public class GraphTriplesTDB extends Gra
     @Override
     protected ExtendedIterator<Triple> graphBaseFind(TripleMatch m)
     {
-        return graphBaseFindWorker(tripleTable, m) ;
+        return graphBaseFindDft(dataset, m) ;
     }
 
 //    @Override
@@ -79,12 +78,6 @@ public class GraphTriplesTDB extends Gra
     protected final Logger getLog() { return log ; }
 
     @Override
-    public Tuple<Node> asTuple(Triple triple)
-    {
-        return Tuple.create(triple.getSubject(), triple.getPredicate(), triple.getObject()) ;
-    }
-    
-    @Override
     protected Iterator<Tuple<NodeId>> countThis()
     {
         return tripleTable.getNodeTupleTable().findAll() ;

Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java Mon Aug 13 15:32:27 2012
@@ -85,7 +85,7 @@ public class DatasetBuilderTxn
         BlockMgrBuilder blockMgrBuilder = new BlockMgrBuilderReadonly() ;
         NodeTableBuilder nodeTableBuilder = new NodeTableBuilderReadonly() ;
         DatasetBuilderStd x = new DatasetBuilderStd(blockMgrBuilder, nodeTableBuilder) ;
-        DatasetGraphTDB dsg2 = x._build(dsg.getLocation(), dsg.getConfig().params, dsg.getTransform()) ;
+        DatasetGraphTDB dsg2 = x._build(dsg.getLocation(), dsg.getConfig().params, dsg.getReorderTransform()) ;
         
         return dsg2 ;
     }
@@ -95,7 +95,7 @@ public class DatasetBuilderTxn
         BlockMgrBuilder blockMgrBuilder = new BlockMgrBuilderTx() ;
         NodeTableBuilder nodeTableBuilder = new NodeTableBuilderTx() ;
         DatasetBuilderStd x = new DatasetBuilderStd(blockMgrBuilder, nodeTableBuilder) ;
-        DatasetGraphTDB dsg2 = x._build(dsg.getLocation(), dsg.getConfig().params, dsg.getTransform()) ;
+        DatasetGraphTDB dsg2 = x._build(dsg.getLocation(), dsg.getConfig().params, dsg.getReorderTransform()) ;
         return dsg2 ;
     }