You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2015/03/30 12:45:15 UTC

clerezza-rdf-core git commit: CLEREZZA-981: selecting only the vars used in query

Repository: clerezza-rdf-core
Updated Branches:
  refs/heads/master d29ca7f7b -> d1dc9e835


CLEREZZA-981: selecting only the vars used in query


Project: http://git-wip-us.apache.org/repos/asf/clerezza-rdf-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/clerezza-rdf-core/commit/d1dc9e83
Tree: http://git-wip-us.apache.org/repos/asf/clerezza-rdf-core/tree/d1dc9e83
Diff: http://git-wip-us.apache.org/repos/asf/clerezza-rdf-core/diff/d1dc9e83

Branch: refs/heads/master
Commit: d1dc9e835c0c5c88f32c228ae351c72920b21649
Parents: d29ca7f
Author: Reto Gmür <re...@apache.org>
Authored: Mon Mar 30 10:44:33 2015 +0000
Committer: Reto Gmür <re...@apache.org>
Committed: Mon Mar 30 10:44:33 2015 +0000

----------------------------------------------------------------------
 .../commons/rdf/impl/sparql/SparqlGraph.java    | 39 +++++++++++---------
 1 file changed, 22 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/clerezza-rdf-core/blob/d1dc9e83/impl.sparql/src/main/java/org/apache/commons/rdf/impl/sparql/SparqlGraph.java
----------------------------------------------------------------------
diff --git a/impl.sparql/src/main/java/org/apache/commons/rdf/impl/sparql/SparqlGraph.java b/impl.sparql/src/main/java/org/apache/commons/rdf/impl/sparql/SparqlGraph.java
index 7a4c48d..594a264 100644
--- a/impl.sparql/src/main/java/org/apache/commons/rdf/impl/sparql/SparqlGraph.java
+++ b/impl.sparql/src/main/java/org/apache/commons/rdf/impl/sparql/SparqlGraph.java
@@ -337,46 +337,51 @@ public class SparqlGraph extends AbstractGraph {
     }
 
     private String createQuery(final BlankNodeOrIri filterSubject, final Iri filterPredicate, final RdfTerm filterObject) {
-        final StringBuilder queryBuilder = new StringBuilder();
-        queryBuilder.append("SELECT ?s ?p ?o WHERE { ");
+        final StringBuilder selectBuilder = new StringBuilder();
+        selectBuilder.append("SELECT ");
+        final StringBuilder whereBuilder = new StringBuilder();
+        whereBuilder.append("WHERE { ");
         if (filterSubject == null) {
-            queryBuilder.append("?s");
+            whereBuilder.append("?s");
+            selectBuilder.append("?s ");
         } else {
             if (filterSubject instanceof SparqlBNode) {
-                queryBuilder.append("?sn");
+                whereBuilder.append("?sn");
             } else {
-                queryBuilder.append(asSparqlTerm(filterSubject));
+                whereBuilder.append(asSparqlTerm(filterSubject));
             }
         }
-        queryBuilder.append(' ');
+        whereBuilder.append(' ');
         if (filterPredicate == null) {
-            queryBuilder.append("?p");
+            whereBuilder.append("?p");
+            selectBuilder.append("?p ");
         } else {
-            queryBuilder.append(asSparqlTerm(filterPredicate));
+            whereBuilder.append(asSparqlTerm(filterPredicate));
         }
-        queryBuilder.append(' ');
+        whereBuilder.append(' ');
         if (filterObject == null) {
-            queryBuilder.append("?o");
+            whereBuilder.append("?o");
+            selectBuilder.append("?o ");
         } else {
             if (filterObject instanceof SparqlBNode) {
-                queryBuilder.append("?on");
+                whereBuilder.append("?on");
             } else {
-                queryBuilder.append(asSparqlTerm(filterObject));
+                whereBuilder.append(asSparqlTerm(filterObject));
             }
         }
-        queryBuilder.append(" .\n");
+        whereBuilder.append(" .\n");
         if (filterSubject instanceof SparqlBNode) {
             //expand bnode context
-            writeTriplePattern(queryBuilder, ((SparqlBNode) filterSubject).context, "sn");
+            writeTriplePattern(whereBuilder, ((SparqlBNode) filterSubject).context, "sn");
         }
         
         if (filterObject instanceof SparqlBNode) {
             //expand bnode context
-            writeTriplePattern(queryBuilder, ((SparqlBNode) filterObject).context, "on");
+            writeTriplePattern(whereBuilder, ((SparqlBNode) filterObject).context, "on");
         }
 
-        queryBuilder.append(" }");
-        return queryBuilder.toString();
+        whereBuilder.append(" }");
+        return selectBuilder.append(whereBuilder).toString();
     }
 
     @Override