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:54:41 UTC

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

Repository: jena
Updated Branches:
  refs/heads/master 2dc063f3b -> d0d7664ae


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/d0d7664a
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d0d7664a
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d0d7664a

Branch: refs/heads/master
Commit: d0d7664aef51a8e88e5001ab0492688463374ebe
Parents: 2dc063f
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:53:50 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/d0d7664a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index 89dfc87..77ba124 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/org/apache/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/d0d7664a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformRemoveAssignment.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
index 6379d5b..564d3b3 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformRemoveAssignment.java
+++ b/jena-arq/src/main/java/org/apache/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/d0d7664a/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 1304fe4..117bd32 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
@@ -380,6 +380,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() {