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() {