You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2020/01/13 12:14:18 UTC
[jena] branch master updated: JENA-1813: GRAPH and sub-query
This is an automated email from the ASF dual-hosted git repository.
andy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jena.git
The following commit(s) were added to refs/heads/master by this push:
new a34ad74 JENA-1813: GRAPH and sub-query
new f7a3f40 Merge pull request #670 from afs/jena1813-opt-assign
a34ad74 is described below
commit a34ad74791394fad5e1cb64fb948d2699e9794c8
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Sun Jan 12 17:50:35 2020 +0000
JENA-1813: GRAPH and sub-query
---
.../apache/jena/sparql/engine/main/JoinClassifier.java | 18 ++++++++++++------
.../org/apache/jena/sparql/algebra/TestClassify.java | 6 ++++++
2 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/JoinClassifier.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/JoinClassifier.java
index 58b1773..9a11a47 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/JoinClassifier.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/JoinClassifier.java
@@ -203,13 +203,19 @@ public class JoinClassifier
return result ;
}
- /** Find the "effective op" - ie. the one that may be sensitive to linearization */
+ /** Find the "effective op" - i.e. the one that may be sensitive to linearization */
private static Op effectiveOp(Op op) {
- if ( op instanceof OpExt )
- op = ((OpExt)op).effectiveOp() ;
- while (safeModifier(op))
- op = ((OpModifier)op).getSubOp() ;
- return op ;
+ for (;;) {
+ if ( op instanceof OpExt )
+ op = ((OpExt)op).effectiveOp() ;
+ else if (safeModifier(op))
+ op = ((OpModifier)op).getSubOp() ;
+ // JENA-1813, temporary fix.
+ else if (op instanceof OpGraph )
+ op = ((OpGraph)op).getSubOp() ;
+ else
+ return op;
+ }
}
/** Helper - test for "safe" modifiers */
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/algebra/TestClassify.java b/jena-arq/src/test/java/org/apache/jena/sparql/algebra/TestClassify.java
index 05db391..9eacff3 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/algebra/TestClassify.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/algebra/TestClassify.java
@@ -159,6 +159,12 @@ public class TestClassify extends BaseTest
TestClassify.classifyJ(x1, false);
}
+ // JENA-1813
+ @Test public void testClassify_Join_54() {
+ String x1 = "{ ?s ?p ?V GRAPH ?g { SELECT (?w AS ?V) { ?t ?q ?w } GROUP BY ?w } }";
+ TestClassify.classifyJ(x1, false);
+ }
+
public static void classifyJ(String pattern, boolean expected)
{
String qs1 = "PREFIX : <http://example/>\n" ;