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