[
https://issues.apache.org/jira/browse/OAK-1215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13832660#comment-13832660
]
Thomas Mueller commented on OAK-1215:
-------------------------------------
OK, so the real query is
{code}
/jcr:root/etc/commerce/products//*[@cq:commerceType='product' and (@size='M' or
*/@size='M' or */*/@size='M')]
{code}
? And the original query (the one that doesn't filter on commerceType) is just
to illustrate the incompatibility?
Would an index on the property cq:commerceType be sufficiently fast? (How many
nodes are there with cq:commerceType='product', and how many nodes are there
with size='M' in the whole repository?)
> Or perhaps you meant translating the XPath to SQL-2 inside Oak?
The XPath - to - SQL-2 converter could in theory create the outer join Jukka
was suggesting, but that would be quite tricky. It's an option, but I wouldn't
want to go in this direction if possible. I was thinking, we could convert the
XPath query to
{code}
SELECT a.* FROM [nt:base] AS a
WHERE ISDESCENDANTNODE(a, [/etc/commerce/products])
AND [cq:commerceType]='product'
AND (a.[size]='M' OR a.[*/size]='M' OR a.[*/*/size]='M')
{code}
and then use an index on the property "cq:commerceType". This would require
supporting "*/size" and so on within the query engine, but it wouldn't easily
allow using an index on the property "size"
> Relative property paths don't work in XPath search expressions
> --------------------------------------------------------------
>
> Key: OAK-1215
> URL: https://issues.apache.org/jira/browse/OAK-1215
> Project: Jackrabbit Oak
> Issue Type: Bug
> Reporter: Jeff Young
> Priority: Critical
> Attachments: relative-predicate-paths.tiff
>
>
> A search XPath of the form:
> {code}
> /jcr:root/etc/commerce/products//*[@size='M' or */@size='M']
> {code}
> returns:
> {code}
> Invalid path: *
> {code}
> (This works fine in Jackrabbit.)
--
This message was sent by Atlassian JIRA
(v6.1#6144)