JENA-1018 : Scope details merging needs to include assignMentions.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/eeb759c2
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/eeb759c2
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/eeb759c2

Branch: refs/heads/JENA-507
Commit: eeb759c24f985742c9386344f613928d0e26d4b5
Parents: 08ec3bb
Author: Andy Seaborne <[email protected]>
Authored: Tue Sep 1 11:45:13 2015 +0100
Committer: Andy Seaborne <[email protected]>
Committed: Tue Sep 1 11:45:13 2015 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/jena/sparql/engine/main/VarFinder.java | 4 +++-
 .../test/java/org/apache/jena/sparql/algebra/TestClassify.java  | 5 +++++
 2 files changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/eeb759c2/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/VarFinder.java
----------------------------------------------------------------------
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/VarFinder.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/VarFinder.java
index ccbb100..b5314da 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/VarFinder.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/VarFinder.java
@@ -129,6 +129,7 @@ public class VarFinder
             defines.addAll(usage.defines);
             optDefines.addAll(usage.optDefines);
             filterMentions.addAll(usage.filterMentions);
+            assignMentions.addAll(usage.assignMentions);
         }
 
         @Override
@@ -219,7 +220,8 @@ public class VarFinder
             VarUsageVisitor subUsage = 
VarUsageVisitor.apply(opProject.getSubOp());
             subUsage.defines.retainAll(vars);
             subUsage.optDefines.retainAll(vars);
-            subUsage.optDefines.retainAll(vars);
+            subUsage.filterMentions.retainAll(vars) ;
+            subUsage.assignMentions.retainAll(vars) ;
             defines.addAll(subUsage.defines);
             optDefines.addAll(subUsage.optDefines);
             filterMentions.addAll(subUsage.filterMentions);

http://git-wip-us.apache.org/repos/asf/jena/blob/eeb759c2/jena-arq/src/test/java/org/apache/jena/sparql/algebra/TestClassify.java
----------------------------------------------------------------------
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 ad6c9ae..ac9f6cc 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
@@ -119,6 +119,9 @@ public class TestClassify extends BaseTest
     @Test public void testClassify_Join_43() 
     { classifyJ("{ ?x ?y ?z { LET(?A := ?z+2) } UNION { }}", false) ; }
     
+    @Test public void testClassify_Join_44() 
+    { classifyJ("{ BIND(<x> AS ?typeX) { BIND(?typeX AS ?type) ?s ?p ?o 
FILTER(?o=?type) } }", false) ; }
+    
     private void classifyJ(String pattern, boolean expected)
     {
         String qs1 = "PREFIX : <http://example/>\n" ;
@@ -126,6 +129,8 @@ public class TestClassify extends BaseTest
         Query query = QueryFactory.create(qs, Syntax.syntaxARQ) ;
         Op op = Algebra.compile(query.getQueryPattern()) ;
         
+        System.out.println(op) ;
+        
         if ( ! ( op instanceof OpJoin ) )
             fail("Not a join: "+pattern) ;
 

Reply via email to