Return-Path: X-Original-To: apmail-jena-commits-archive@www.apache.org Delivered-To: apmail-jena-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4396218A5B for ; Tue, 7 Jul 2015 12:54:41 +0000 (UTC) Received: (qmail 96877 invoked by uid 500); 7 Jul 2015 12:54:41 -0000 Delivered-To: apmail-jena-commits-archive@jena.apache.org Received: (qmail 96852 invoked by uid 500); 7 Jul 2015 12:54:41 -0000 Mailing-List: contact commits-help@jena.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jena.apache.org Delivered-To: mailing list commits@jena.apache.org Received: (qmail 96843 invoked by uid 99); 7 Jul 2015 12:54:41 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Jul 2015 12:54:41 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 0EA0EDFFAA; Tue, 7 Jul 2015 12:54:41 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: rvesse@apache.org To: commits@jena.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: jena git commit: Don't merge extends when looking for inlining oppurtunities (JENA-780) Date: Tue, 7 Jul 2015 12:54:41 +0000 (UTC) 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 Authored: Tue Jul 7 13:22:07 2015 +0100 Committer: Rob Vesse 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() {