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 2016/05/21 18:54:35 UTC

[15/23] jena git commit: The new walker uncovers the true scoping. Fix tests.

The new walker uncovers the true scoping. Fix tests.

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

Branch: refs/heads/master
Commit: 3c08cdec8109a06cc59f8b949edf3f8b15220ae7
Parents: bcc4aa9
Author: Andy Seaborne <an...@apache.org>
Authored: Mon Apr 25 13:30:46 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat May 21 18:29:13 2016 +0100

----------------------------------------------------------------------
 .../TestTransformEliminateAssignments.java      | 46 +++++++++++++-------
 1 file changed, 31 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/3c08cdec/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
index dc0daff..2de716c 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -504,41 +504,57 @@ public class TestTransformEliminateAssignments {
 
     @Test
     public void exists_01() {
+        // (extend) used in the filter-exists
+        //@formatter:off
+        testNoChange("(project (?y)",
+                     "  (filter (exists",
+                     "            (filter  ?x (table unit)))",
+                     "    (extend (?x true)",
+                     "      (table unit))))") ; 
+        //@formatter:on
+    }
+
+    @Test
+    public void exists_02() {
         // We can't inline into an EXISTS since the assignment isn't projected
         // out anyway and its an n-ary operator so would change semantics
         // However this makes the assignment unused so can still remove it
         //@formatter:off
         test(StrUtils.strjoinNL("(project (?y)",
-                               "  (filter (exprlist (exists",
-                               "                      (filter (exprlist ?x)",
-                               "                        (table unit))))",
+                               "  (filter (exists",
+                               "            (filter ?z",
+                               "              (table unit)))",
                                "    (extend (?x true)",
                                "      (table unit))))"),
             "(project (?y)",
             "  (filter (exprlist (exists",
-            "                      (filter (exprlist ?x)",
+            "                      (filter (exprlist ?z)",
             "                        (table unit))))",
             "    (table unit)))");
         //@formatter:on
     }
 
+
     @Test
-    public void exists_02() {
-        // Could inline within an exists but still needs to meet other rules
-        // Even though an exists is technically a form of projection can't
-        // discount the variable being needed elsewhere
+    public void exists_03() {
+        // "?x" not used elsewhere.
         //@formatter:off
-        testNoChange("(project (?y)",
-                     "  (filter (exprlist (exists",
-                     "                      (filter (exprlist ?x)",
-                     "                        (extend (?x true)",
-                     "                          (table unit)))))",
-                     "    (table unit)))");
+        test(StrUtils.strjoinNL("(project (?y)",
+                                "  (filter (exists ",
+                                "            (filter ?x",
+                                "              (extend (?x true)",
+                                "                 (table unit))))",
+                                "    (table unit)))"),
+            "(project (?y)",
+            "  (filter (exists (filter true (table unit)))",
+            "     (table unit)",
+            "))") ;
+            
         //@formatter:on
     }
 
     @Test
-    public void exists_03() {
+    public void exists_04() {
         // Can inline within an exists provided it meets normal conditions of
         // being inside a projection
         //@formatter:off