Smalyshev has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/210818

Change subject: Fix T99006: omit statements with bnodes from value statements
......................................................................

Fix T99006: omit statements with bnodes from value statements

Change-Id: I424ce62d8974202afdfd992b1b752cf8d9048d95
---
M tools/src/main/java/org/wikidata/query/rdf/tool/rdf/UpdateBuilder.java
M tools/src/test/java/org/wikidata/query/rdf/tool/Matchers.java
M 
tools/src/test/java/org/wikidata/query/rdf/tool/rdf/RdfRepositoryIntegrationTest.java
3 files changed, 25 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/wikidata/query/rdf 
refs/changes/18/210818/1

diff --git 
a/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/UpdateBuilder.java 
b/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/UpdateBuilder.java
index e62bad0..e9fbb2d 100644
--- a/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/UpdateBuilder.java
+++ b/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/UpdateBuilder.java
@@ -67,6 +67,10 @@
     public UpdateBuilder bindValues(String from, Collection<Statement> 
statements) {
         StringBuilder b = new StringBuilder(statements.size() * 30);
         for (Statement s : statements) {
+               if(s.getObject() instanceof BNode || s.getSubject() instanceof 
BNode) {
+                       // skip bnodes since they can not be matched anyway
+                       continue;
+               }
             b.append("( ").append(str(s.getSubject())).append(' ');
             b.append(str(s.getPredicate())).append(' ');
             b.append(str(s.getObject())).append(" )\n");
diff --git a/tools/src/test/java/org/wikidata/query/rdf/tool/Matchers.java 
b/tools/src/test/java/org/wikidata/query/rdf/tool/Matchers.java
index 7cb1e79..148022d 100644
--- a/tools/src/test/java/org/wikidata/query/rdf/tool/Matchers.java
+++ b/tools/src/test/java/org/wikidata/query/rdf/tool/Matchers.java
@@ -2,6 +2,7 @@
 
 import static org.hamcrest.Matchers.allOf;
 import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.instanceOf;
 import static org.wikidata.query.rdf.tool.StatementHelper.uri;
 
 import java.util.ArrayList;
@@ -31,6 +32,10 @@
         return new BindsMatcher<URI>(name, equalTo(uri(value)));
     }
 
+    public static Matcher<BindingSet> binds(String name, Class<?> value) {
+        return new BindsMatcher<Object>(name, instanceOf(value));
+    }
+
     /**
      * Check a binding to a value.
      */
@@ -38,6 +43,7 @@
         return new BindsMatcher<V>(name, equalTo(value));
     }
 
+
     /**
      * Checks bindings.
      *
diff --git 
a/tools/src/test/java/org/wikidata/query/rdf/tool/rdf/RdfRepositoryIntegrationTest.java
 
b/tools/src/test/java/org/wikidata/query/rdf/tool/rdf/RdfRepositoryIntegrationTest.java
index c3604e7..15be401 100644
--- 
a/tools/src/test/java/org/wikidata/query/rdf/tool/rdf/RdfRepositoryIntegrationTest.java
+++ 
b/tools/src/test/java/org/wikidata/query/rdf/tool/rdf/RdfRepositoryIntegrationTest.java
@@ -17,7 +17,9 @@
 
 import org.junit.Before;
 import org.junit.Test;
+import org.openrdf.model.BNode;
 import org.openrdf.model.Statement;
+import org.openrdf.model.impl.BNodeImpl;
 import org.openrdf.model.impl.IntegerLiteralImpl;
 import org.openrdf.model.impl.LiteralImpl;
 import org.openrdf.query.QueryEvaluationException;
@@ -621,4 +623,17 @@
                 new IntegerLiteralImpl(new 
BigInteger(Integer.toString(version))));
         rdfRepository().sync(entityId, ImmutableList.of(statement));
     }
+
+    @Test
+    public void statementWithBnode() throws QueryEvaluationException {
+        rdfRepository().sync("Q42", ImmutableList.of(//
+                statement("Q42", "P396", new BNodeImpl("testBnode"))));
+        TupleQueryResult r = rdfRepository().query("SELECT * WHERE {?s ?p 
?o}");
+        assertTrue(r.hasNext());
+        assertThat(r.next(), allOf(//
+                binds("s", "Q42"), //
+                binds("p", "P396"), //
+                binds("o", BNode.class)));
+        assertFalse(r.hasNext());
+    }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/210818
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I424ce62d8974202afdfd992b1b752cf8d9048d95
Gerrit-PatchSet: 1
Gerrit-Project: wikidata/query/rdf
Gerrit-Branch: master
Gerrit-Owner: Smalyshev <smalys...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to