Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 41873 invoked from network); 22 Jun 2007 14:05:48 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 22 Jun 2007 14:05:48 -0000 Received: (qmail 17039 invoked by uid 500); 22 Jun 2007 14:05:50 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 17011 invoked by uid 500); 22 Jun 2007 14:05:50 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 17002 invoked by uid 99); 22 Jun 2007 14:05:50 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 22 Jun 2007 07:05:50 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 22 Jun 2007 07:05:46 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 3834E7141DC for ; Fri, 22 Jun 2007 07:05:26 -0700 (PDT) Message-ID: <11546217.1182521126227.JavaMail.jira@brutus> Date: Fri, 22 Jun 2007 07:05:26 -0700 (PDT) From: "Christoph Kiehl (JIRA)" To: dev@jackrabbit.apache.org Subject: [jira] Updated: (JCR-967) Only search the index for the "jcr:system" tree if needed In-Reply-To: <9891298.1181553206069.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/JCR-967?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Christoph Kiehl updated JCR-967: -------------------------------- Attachment: patch.txt This patch works with "//test/*" as well. I extended the test case. I didn't provide a default implementation of needsSystemTree() on purpose because I wanted to force everyone extending QueryNode to think about if his implementation needs the system tree or not. If we provide a default implementation that returns false this might lead to unexpected behaviour if one expects the system tree to be included. We could provide a default implemenation that returns true but then we would have to override the methods anyway in almost all QueryNode implemenations to return false. > Only search the index for the "jcr:system" tree if needed > --------------------------------------------------------- > > Key: JCR-967 > URL: https://issues.apache.org/jira/browse/JCR-967 > Project: Jackrabbit > Issue Type: Improvement > Components: query > Affects Versions: 1.3 > Reporter: Christoph Kiehl > Attachments: patch.txt > > > Right now every time a query is executed the index of the current workspace as well as the index of the "jcr:system" tree is searched. A lot of queries are not searching in the "jcr:system" tree at all therefore it should be checked if the query contains paths that include "jcr:system". There are two relevant nodes in the query tree to find that out: > - what's the first location step and does it include the jcr:system tree? I think that's an easy one. > - does the query contain a jcr:deref node? If there is an intermediate result of a query may dereference into the jcr:system tree. > This should notably speed up query execution if you are working extensively with versioning. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.