[ 
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 is an initial patch which checks the first location step for "jcr:system". 
This might not be enough since "jcr:system" might be reachable through the 
parent operator "..". Not sure about this though.
I didn't implement the check deref nodes. Right any deref node should lead to 
an inclusion of the system tree index. I'm not sure if it's worth the hassle 
because for large result sets it might lead to performance degradation because 
every uuid has to be checked if its item is located under jcr:system.
I chose to implement this check through QueryNode because I think this would be 
less error prone than implement the whole check in QueryImpl because then 
QueryImpl has to know about every implementation of QueryNode. As it is now 
every QueryNode implementation is responsible for itself if it needs the system 
tree index to be included in the search.

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

Reply via email to