You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Thomas Mueller (JIRA)" <ji...@apache.org> on 2014/06/16 21:59:04 UTC

[jira] [Commented] (OAK-1894) PropertyIndex only considers the cost of a single indexed property

    [ https://issues.apache.org/jira/browse/OAK-1894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14032858#comment-14032858 ] 

Thomas Mueller commented on OAK-1894:
-------------------------------------

> without refactoring of the API to allow indexes to return an object from getCost() which can then be passed into query() later.

We do have a solution for that: the interface QueryIndex.AdvancedQueryIndex, method getPlans. But property indexes don't use that API yet (only ordered indexes use it right now). So what you want might be possible, I will check.

But first I will have a look at your patch.

> PropertyIndex only considers the cost of a single indexed property
> ------------------------------------------------------------------
>
>                 Key: OAK-1894
>                 URL: https://issues.apache.org/jira/browse/OAK-1894
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: query
>            Reporter: Justin Edelson
>         Attachments: OAK-1894.patch
>
>
> The existing PropertyIndex loops through the PropertyRestriction objects in the Filter and essentially only calculates the cost of the first indexed property. This isn't actually the first property in the query and Filter.propertyRestrictions is a HashMap.
> More confusingly, the plan for a query with multiple indexed properties outputs *all* indexed properties, even though only the first one is used.
> For queries with multiple indexed properties, the cheapest property index should be used in all three relevant places: when calculating the cost, when executing the query, and when producing the plan.



--
This message was sent by Atlassian JIRA
(v6.2#6252)