Smalyshev has uploaded a new change for review.
https://gerrit.wikimedia.org/r/276659
Change subject: Fix service handling on ASK query
......................................................................
Fix service handling on ASK query
Bug: T128944
Change-Id: Icc79e228d60486ebdccf972e4868c6c0f13fda4f
---
M
blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/label/EmptyLabelServiceOptimizer.java
M
blazegraph/src/test/java/org/wikidata/query/rdf/blazegraph/AbstractRandomizedBlazegraphTestBase.java
M
blazegraph/src/test/java/org/wikidata/query/rdf/blazegraph/label/LabelServiceUnitTest.java
M gui
4 files changed, 33 insertions(+), 1 deletion(-)
git pull ssh://gerrit.wikimedia.org:29418/wikidata/query/rdf
refs/changes/59/276659/1
diff --git
a/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/label/EmptyLabelServiceOptimizer.java
b/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/label/EmptyLabelServiceOptimizer.java
index a2c238f..3e28c0f 100644
---
a/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/label/EmptyLabelServiceOptimizer.java
+++
b/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/label/EmptyLabelServiceOptimizer.java
@@ -18,6 +18,8 @@
import com.bigdata.rdf.sparql.ast.ConstantNode;
import com.bigdata.rdf.sparql.ast.JoinGroupNode;
import com.bigdata.rdf.sparql.ast.ProjectionNode;
+import com.bigdata.rdf.sparql.ast.QueryRoot;
+import com.bigdata.rdf.sparql.ast.QueryType;
import com.bigdata.rdf.sparql.ast.StatementPatternNode;
import com.bigdata.rdf.sparql.ast.StaticAnalysis;
import com.bigdata.rdf.sparql.ast.VarNode;
@@ -41,6 +43,10 @@
@Override
protected void optimizeJoinGroup(AST2BOpContext ctx, StaticAnalysis sa,
IBindingSet[] bSets, JoinGroupNode op) {
+ final QueryRoot root = sa.getQueryRoot();
+ if (root.getQueryType() == QueryType.ASK) {
+ return;
+ }
for (ServiceNode service : op.getServiceNodes()) {
BigdataValue serviceRef = service.getServiceRef().getValue();
if (serviceRef == null) {
@@ -63,7 +69,7 @@
continue;
}
- addResolutions(ctx, g, sa.getQueryRoot().getProjection());
+ addResolutions(ctx, g, root.getProjection());
// We can really only do this once....
return;
}
@@ -74,6 +80,9 @@
* service.
*/
private void addResolutions(AST2BOpContext ctx, JoinGroupNode g,
ProjectionNode p) {
+ if (p == null) {
+ return;
+ }
for (AssignmentNode a : p) {
IVariable<IV> var = a.getVar();
if (a.getValueExpression() != var) {
diff --git
a/blazegraph/src/test/java/org/wikidata/query/rdf/blazegraph/AbstractRandomizedBlazegraphTestBase.java
b/blazegraph/src/test/java/org/wikidata/query/rdf/blazegraph/AbstractRandomizedBlazegraphTestBase.java
index 00debf1..0052d05 100644
---
a/blazegraph/src/test/java/org/wikidata/query/rdf/blazegraph/AbstractRandomizedBlazegraphTestBase.java
+++
b/blazegraph/src/test/java/org/wikidata/query/rdf/blazegraph/AbstractRandomizedBlazegraphTestBase.java
@@ -53,6 +53,19 @@
}
/**
+ * Run an ASK query.
+ */
+ protected boolean ask(String query) {
+ try {
+ ASTContainer astContainer = new
Bigdata2ASTSPARQLParser().parseQuery2(query, null);
+
+ return ASTEvalHelper.evaluateBooleanQuery(store(), astContainer,
new QueryBindingSet(), null);
+ } catch (MalformedQueryException | QueryEvaluationException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
* Add a triple to the store.
*/
protected void add(Object s, Object p, Object o) {
diff --git
a/blazegraph/src/test/java/org/wikidata/query/rdf/blazegraph/label/LabelServiceUnitTest.java
b/blazegraph/src/test/java/org/wikidata/query/rdf/blazegraph/label/LabelServiceUnitTest.java
index 4963ed5..0f09cef 100644
---
a/blazegraph/src/test/java/org/wikidata/query/rdf/blazegraph/label/LabelServiceUnitTest.java
+++
b/blazegraph/src/test/java/org/wikidata/query/rdf/blazegraph/label/LabelServiceUnitTest.java
@@ -188,4 +188,14 @@
+ labelType.substring(start + 1);
}
+ @Test
+ public void labelOnAsk() {
+ StringBuilder query = uris().prefixes(Ontology.prefix(new
StringBuilder()));
+ query.append("ASK {\n");
+ query.append(" ontology:dummy ontology:dummy ?s .\n");
+ query.append(" SERVICE ontology:label { bd:serviceParam
ontology:language \"en,de\" . }\n");
+ query.append("}\n");
+ assertFalse(ask(query.toString()));
+ }
+
}
diff --git a/gui b/gui
index 653f08e..08c2428 160000
--- a/gui
+++ b/gui
-Subproject commit 653f08e654eff0bebf34ad088edddf60cb62bde2
+Subproject commit 08c24283ec80465e43cb34d24d86926bdd129ffc
--
To view, visit https://gerrit.wikimedia.org/r/276659
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Icc79e228d60486ebdccf972e4868c6c0f13fda4f
Gerrit-PatchSet: 1
Gerrit-Project: wikidata/query/rdf
Gerrit-Branch: master
Gerrit-Owner: Smalyshev <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits