You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2013/05/03 14:33:54 UTC

git commit: fixed a bug in iterating over SPARQL results, now SPARQL results do not directly iterate over the result set, instead return a list (to avoid having several result sets open at the same time)

Updated Branches:
  refs/heads/develop 9432e3117 -> efb2d27a3


fixed a bug in iterating over SPARQL results, now SPARQL results do not directly iterate over the result set, instead return a list (to avoid having several result sets open at the same time)


Project: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/commit/efb2d27a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/tree/efb2d27a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/diff/efb2d27a

Branch: refs/heads/develop
Commit: efb2d27a3226348f257bc12c6edd75402098d0e1
Parents: 9432e31
Author: Sebastian Schaffert <ss...@apache.org>
Authored: Fri May 3 14:33:48 2013 +0200
Committer: Sebastian Schaffert <ss...@apache.org>
Committed: Fri May 3 14:33:48 2013 +0200

----------------------------------------------------------------------
 .../sparql/persistence/KiWiSparqlConnection.java   |    5 ++++-
 .../kiwi/sparql/test/KiWiSparqlJoinTest.java       |   12 ++++++++++++
 .../marmotta/kiwi/sparql/test/query11.sparql       |    8 ++++++++
 .../marmotta/kiwi/sparql/test/query12.sparql       |    7 +++++++
 4 files changed, 31 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/efb2d27a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/persistence/KiWiSparqlConnection.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/persistence/KiWiSparqlConnection.java b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/persistence/KiWiSparqlConnection.java
index b675ddf..a192c2c 100644
--- a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/persistence/KiWiSparqlConnection.java
+++ b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/persistence/KiWiSparqlConnection.java
@@ -19,6 +19,8 @@ package org.apache.marmotta.kiwi.sparql.persistence;
 
 import com.google.common.base.Preconditions;
 import info.aduna.iteration.CloseableIteration;
+import info.aduna.iteration.CloseableIteratorIteration;
+import info.aduna.iteration.Iterations;
 import org.apache.commons.lang.StringUtils;
 import org.apache.marmotta.commons.sesame.model.Namespaces;
 import org.apache.marmotta.commons.util.DateUtils;
@@ -290,7 +292,7 @@ public class KiWiSparqlConnection {
         PreparedStatement queryStatement = parent.getJDBCConnection().prepareStatement(queryString);
         ResultSet result = queryStatement.executeQuery();
 
-        return new ResultSetIteration<BindingSet>(result, true, new ResultTransformerFunction<BindingSet>() {
+        ResultSetIteration<BindingSet> it = new ResultSetIteration<BindingSet>(result, true, new ResultTransformerFunction<BindingSet>() {
             @Override
             public BindingSet apply(ResultSet row) throws SQLException {
                 MapBindingSet resultRow = new MapBindingSet();
@@ -309,6 +311,7 @@ public class KiWiSparqlConnection {
             }
         });
 
+        return new CloseableIteratorIteration<BindingSet, SQLException>(Iterations.asList(it).iterator());
     }
 
     private String evaluateExpression(ValueExpr expr, Map<Var, List<String>> queryVariables, OPTypes optype) {

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/efb2d27a/libraries/kiwi/kiwi-sparql/src/test/java/org/apache/marmotta/kiwi/sparql/test/KiWiSparqlJoinTest.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-sparql/src/test/java/org/apache/marmotta/kiwi/sparql/test/KiWiSparqlJoinTest.java b/libraries/kiwi/kiwi-sparql/src/test/java/org/apache/marmotta/kiwi/sparql/test/KiWiSparqlJoinTest.java
index 861c564..2aab4c4 100644
--- a/libraries/kiwi/kiwi-sparql/src/test/java/org/apache/marmotta/kiwi/sparql/test/KiWiSparqlJoinTest.java
+++ b/libraries/kiwi/kiwi-sparql/src/test/java/org/apache/marmotta/kiwi/sparql/test/KiWiSparqlJoinTest.java
@@ -257,6 +257,18 @@ public class KiWiSparqlJoinTest {
         testQuery("query10.sparql");
     }
 
+    // optional
+    @Test
+    public void testQuery11() throws Exception {
+        testQuery("query11.sparql");
+    }
+
+    // optional with join
+    @Test
+    public void testQuery12() throws Exception {
+        testQuery("query12.sparql");
+    }
+
 
     private void testQuery(String filename) throws Exception {
         String queryString = IOUtils.toString(this.getClass().getResourceAsStream(filename), "UTF-8");

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/efb2d27a/libraries/kiwi/kiwi-sparql/src/test/resources/org/apache/marmotta/kiwi/sparql/test/query11.sparql
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-sparql/src/test/resources/org/apache/marmotta/kiwi/sparql/test/query11.sparql b/libraries/kiwi/kiwi-sparql/src/test/resources/org/apache/marmotta/kiwi/sparql/test/query11.sparql
new file mode 100644
index 0000000..f784eb1
--- /dev/null
+++ b/libraries/kiwi/kiwi-sparql/src/test/resources/org/apache/marmotta/kiwi/sparql/test/query11.sparql
@@ -0,0 +1,8 @@
+PREFIX foaf: <http://xmlns.com/foaf/0.1/>
+PREFIX dc: <http://purl.org/dc/elements/1.1/>
+
+SELECT ?p1 ?fn ?age ?i WHERE {
+    ?p1 foaf:name ?fn .
+    OPTIONAL { ?p1 foaf:age ?age } .
+    ?p1 foaf:interest ?i
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/efb2d27a/libraries/kiwi/kiwi-sparql/src/test/resources/org/apache/marmotta/kiwi/sparql/test/query12.sparql
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-sparql/src/test/resources/org/apache/marmotta/kiwi/sparql/test/query12.sparql b/libraries/kiwi/kiwi-sparql/src/test/resources/org/apache/marmotta/kiwi/sparql/test/query12.sparql
new file mode 100644
index 0000000..c025a19
--- /dev/null
+++ b/libraries/kiwi/kiwi-sparql/src/test/resources/org/apache/marmotta/kiwi/sparql/test/query12.sparql
@@ -0,0 +1,7 @@
+PREFIX foaf: <http://xmlns.com/foaf/0.1/>
+PREFIX dc: <http://purl.org/dc/elements/1.1/>
+
+SELECT ?p1 ?fn ?p2 ?age WHERE {
+    ?p1 foaf:name ?fn .
+    OPTIONAL { ?p1 foaf:knows ?p2 . ?p2 foaf:age ?age }
+}
\ No newline at end of file