You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2013/06/24 21:34:11 UTC

svn commit: r1496173 - /jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformFilters.java

Author: rvesse
Date: Mon Jun 24 19:34:11 2013
New Revision: 1496173

URL: http://svn.apache.org/r1496173
Log:
Some more tests for safe and unsafe applications of implicit join optimizations (JENA-473)

Modified:
    jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformFilters.java

Modified: jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformFilters.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformFilters.java?rev=1496173&r1=1496172&r2=1496173&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformFilters.java (original)
+++ jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformFilters.java Mon Jun 24 19:34:11 2013
@@ -592,13 +592,44 @@ public class TestTransformFilters
              (String[])null);
     }
     
-    @Test public void implicitJoin9()
+    @Test public void implicitJoin7()
     {
         test(
              "(filter ((= ?x ?y) (= ?x ?z)) (bgp (?x ?p ?o)(?y ?p1 ?z)))",
              t_implicitJoin,
              (String[])null);
     }
+    
+    @Test public void implicitJoin8()
+    {
+        test(
+             "(filter (= ?x ?y) (join (bgp (?x ?p ?o)) (bgp (?y ?p1 ?o1))))",
+             t_implicitJoin,
+             "(assign ((?x ?y)) (join (bgp (?y ?p ?o)) (bgp (?y ?p1 ?o1))))");
+        
+        test(
+                "(filter (= ?y ?x) (join (bgp (?x ?p ?o)) (bgp (?y ?p1 ?o1))))",
+                t_implicitJoin,
+                "(assign ((?y ?x)) (join (bgp (?x ?p ?o)) (bgp (?x ?p1 ?o1))))");
+    }
+    
+    @Test public void implicitJoin9()
+    {
+        // A variable introduced by an assign cannot be considered safe
+        test(
+             "(filter (= ?x ?y) (assign ((?x <http://constant>)) (bgp (?y ?p ?o))))",
+             t_implicitJoin,
+             (String[])null);
+    }
+    
+    @Test public void implicitJoin10()
+    {
+        // A variable not necessarily fixed makes the transform unsafe
+        test(
+            "(filter (= ?x ?y) (leftjoin (leftjoin (bgp (?s <http://pred> ?o)) (bgp (?x ?p ?o))) (bgp (?y ?p1 ?o1))))",
+            t_implicitJoin,
+            (String[])null);
+    }
         
     @Test public void implicitLeftJoin1()
     {