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 2015/07/07 14:53:17 UTC

[18/18] jena git commit: Don't merge extends when looking for inlining oppurtunities (JENA-780)

Don't merge extends when looking for inlining oppurtunities (JENA-780)

In checking the new optimization it was noticed that this introduces a
regression in the query JENA-779 that originally spawned this proposal.
This was because we used OpExtend.extend() rather than OpExtend.create()
which could result in other optimizations being blocked.

We now use OpExtend.create() instead and add a test to check that we
don't merge extends.


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

Branch: refs/heads/jena2
Commit: 7e2c9527fc4807c14175a529ac9c598f6aab35e2
Parents: b02309f
Author: Rob Vesse <rv...@apache.org>
Authored: Tue Jul 7 13:22:07 2015 +0100
Committer: Rob Vesse <rv...@apache.org>
Committed: Tue Jul 7 13:22:07 2015 +0100

----------------------------------------------------------------------
 .../algebra/optimize/TransformEliminateAssignments.java |  2 +-
 .../algebra/optimize/TransformRemoveAssignment.java     |  4 ++--
 .../optimize/TestTransformEliminateAssignments.java     | 12 ++++++++++++
 3 files changed, 15 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/7e2c9527/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index c468272..e984c07 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -257,7 +257,7 @@ public class TransformEliminateAssignments extends TransformCopy {
 
         // May be able to eliminate the extend entirely in some cases
         if (newAssignments.size() > 0) {
-            return OpExtend.extend(subOp, newAssignments);
+            return OpExtend.create(subOp, newAssignments);
         } else {
             return subOp;
         }

http://git-wip-us.apache.org/repos/asf/jena/blob/7e2c9527/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
index d7c08d4..88bd048 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
@@ -99,14 +99,14 @@ public class TransformRemoveAssignment extends TransformCopy {
             // If topmost only ignore any transformations lower down the tree
             // hence call getSubOp() rather than using the provided subOp
             if (assignments.size() > 0) {
-                return OpExtend.extend(opExtend.getSubOp(), assignments);
+                return OpExtend.create(opExtend.getSubOp(), assignments);
             } else {
                 return opExtend.getSubOp();
             }
         } else {
             // Otherwise preserve any transformations from lower down the tree
             if (assignments.size() > 0) {
-                return OpExtend.extend(subOp, assignments);
+                return OpExtend.create(subOp, assignments);
             } else {
                 return subOp;
             }

http://git-wip-us.apache.org/repos/asf/jena/blob/7e2c9527/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
index 7d6cf40..fa16c94 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformEliminateAssignments.java
@@ -379,6 +379,18 @@ public class TestTransformEliminateAssignments {
                      "      (bgp (triple ?x ?y ?z)))))");
         //@formatter:on
     }
+    
+    @Test
+    public void no_merge_01() {
+        // We should not merge extends
+        //@formatter:off
+        testNoChange("(project (?x ?y)",
+                     "  (filter (exprlist ?x)",
+                     "    (extend (?x true)",
+                     "      (extend (?y false)",
+                     "        (table unit)))))");
+        //@formatter:on
+    }
 
     @Test
     public void scope_01() {