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