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 2011/11/14 15:28:42 UTC
svn commit: r1201724 - in /incubator/jena/Jena2/ARQ/trunk/src:
main/java/com/hp/hpl/jena/query/
main/java/com/hp/hpl/jena/sparql/engine/main/iterator/
test/java/com/hp/hpl/jena/sparql/core/
Author: andy
Date: Mon Nov 14 14:28:41 2011
New Revision: 1201724
URL: http://svn.apache.org/viewvc?rev=1201724&view=rev
Log:
Make general purpose ("any graph") in-memory datasets work for SPARQL probe: "ASK { GRAPH <g> {}".
Modified:
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/DatasetFactory.java
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/main/iterator/QueryIterGraph.java
incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDataset.java
incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDatasetMem.java
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/DatasetFactory.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/DatasetFactory.java?rev=1201724&r1=1201723&r2=1201724&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/DatasetFactory.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/DatasetFactory.java Mon Nov 14 14:28:41 2011
@@ -44,7 +44,7 @@ public class DatasetFactory
/** Create an in-memory, modifiable Dataset.
* New graphs must be explicitly added using .addGraph.
*/
- public static Dataset createMemFixed() { return create(DatasetGraphFactory.createMemFixed()) ; }
+ public static Dataset createMemFixed() { return create(DatasetGraphFactory.createMem()) ; }
/** Create an in-memory, modifable Dataset
* @deprecated Use createMem
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/main/iterator/QueryIterGraph.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/main/iterator/QueryIterGraph.java?rev=1201724&r1=1201723&r2=1201724&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/main/iterator/QueryIterGraph.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/main/iterator/QueryIterGraph.java Mon Nov 14 14:28:41 2011
@@ -151,17 +151,10 @@ public class QueryIterGraph extends Quer
return null ;
Node gn = graphNames.next() ;
-// Binding b = parentBinding ;
-// if ( Var.isVar(opGraph.getNode()) )
-// // (graph ?g (...))
-// b = BindingFactory.binding(b, Var.alloc(opGraph.getNode()), gn) ;
-// QueryIterator qIter = buildIterator(b, gn, opGraph, getExecContext()) ;
-
-
QueryIterator qIter = buildIterator(parentBinding, gn, opGraph, getExecContext()) ;
if ( Var.isVar(opGraph.getNode()) )
{
- // This is the join.
+ // This is the join of the graph node variable to the sub-pattern solution.
// Do after the subpattern so that the variable is not visible to the
// subpattern.
Var v = Var.alloc(opGraph.getNode()) ;
@@ -181,9 +174,14 @@ public class QueryIterGraph extends Quer
// Think about avoiding substitution.
// If the subpattern does not involve the vars from the binding, avoid the substitute.
Op op = QC.substitute(opGraph.getSubOp(), binding) ;
+ if ( ! outerCxt.getDataset().containsGraph(graphNode) )
+ return null ;
+
Graph g = outerCxt.getDataset().getGraph(graphNode) ;
+ // And the contains was true??!!!!!!
if ( g == null )
return null ;
+ //throw new ARQInternalErrorException(".containsGraph was true but .getGraph is null") ;
ExecutionContext cxt2 = new ExecutionContext(outerCxt, g) ;
QueryIterator subInput = QueryIterSingleton.create(binding, cxt2) ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDataset.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDataset.java?rev=1201724&r1=1201723&r2=1201724&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDataset.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDataset.java Mon Nov 14 14:28:41 2011
@@ -18,16 +18,11 @@
package com.hp.hpl.jena.sparql.core;
-import static junit.framework.Assert.assertEquals ;
-import static junit.framework.Assert.assertFalse ;
-import static junit.framework.Assert.assertNotNull ;
-import static junit.framework.Assert.assertNull ;
-import static junit.framework.Assert.assertTrue ;
-
import java.util.List ;
import org.junit.Test ;
import org.openjena.atlas.iterator.Iter ;
+import org.openjena.atlas.junit.BaseTest ;
import com.hp.hpl.jena.query.Dataset ;
import com.hp.hpl.jena.rdf.model.Model ;
@@ -35,7 +30,7 @@ import com.hp.hpl.jena.rdf.model.ModelFa
import com.hp.hpl.jena.rdf.model.Property ;
import com.hp.hpl.jena.rdf.model.Resource ;
-public abstract class TestDataset
+public abstract class TestDataset extends BaseTest
{
// Assumes a dadatset which need explicit add graph
protected abstract Dataset createFixed() ;
@@ -71,14 +66,14 @@ public abstract class TestDataset
assertTrue(model1.isIsomorphicWith(ds.getDefaultModel())) ;
}
- @Test public void datasource_01()
+ @Test public void dataset_03()
{
Dataset ds = createFixed() ;
ds.setDefaultModel(model2) ;
assertTrue(model2.isIsomorphicWith(ds.getDefaultModel())) ;
}
- @Test public void datasource_02()
+ @Test public void dataset_04()
{
String graphName = "http://example/" ;
Dataset ds = createFixed() ;
@@ -96,11 +91,11 @@ public abstract class TestDataset
assertTrue(model1.isIsomorphicWith(m)) ;
ds.removeNamedModel(graphName) ;
- Model m2 = ds.getNamedModel(graphName) ;
- assertNull(m2) ;
+ // Not getNamedModel and test for null as some dadasets are "auto graph creating"
+ assertFalse(ds.containsNamedModel(graphName)) ;
}
- @Test public void datasource_03()
+ @Test public void dataset_05()
{
String graphName = "http://example/" ;
Dataset ds = createFixed() ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDatasetMem.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDatasetMem.java?rev=1201724&r1=1201723&r2=1201724&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDatasetMem.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDatasetMem.java Mon Nov 14 14:28:41 2011
@@ -31,5 +31,5 @@ public class TestDatasetMem extends Test
}
@Override
- protected Dataset createFixed() { return DatasetFactory.createMemFixed() ; }
+ protected Dataset createFixed() { return DatasetFactory.createMem() ; }
}