[
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.