Thomas Mueller created OAK-7166:
-----------------------------------

             Summary: Union with different selector names
                 Key: OAK-7166
                 URL: https://issues.apache.org/jira/browse/OAK-7166
             Project: Jackrabbit Oak
          Issue Type: Bug
          Components: query
         Environment: The following query returns the wrong nodes:

{noformat}
/jcr:root/libs/(* | */* | */*/* | */*/*/* | */*/*/*/*)/install

select b.[jcr:path] as [jcr:path], b.[jcr:score] as [jcr:score], b.* from 
[nt:base] as a
 inner join [nt:base] as b on ischildnode(b, a)
 where ischildnode(a, '/libs') and name(b) = 'install' 
 union select c.[jcr:path] as [jcr:path], c.[jcr:score] as [jcr:score], c.* 
from [nt:base] as a
 inner join [nt:base] as b on ischildnode(b, a)
 inner join [nt:base] as c on ischildnode(c, b)
 where ischildnode(a, '/libs') and name(c) = 'install' 
 union select d.[jcr:path] as [jcr:path], d.[jcr:score] as [jcr:score], d.* 
from [nt:base] as a
 inner join [nt:base] as b on ischildnode(b, a)
 inner join [nt:base] as c on ischildnode(c, b)
 inner join [nt:base] as d on ischildnode(d, c)
 where ischildnode(a, '/libs') and name(d) = 'install' 
{noformat}

If I change the selector name to "x" in each subquery, then it works. There is 
no XPath version of this workaround:

{noformat}
select x.[jcr:path] as [jcr:path], x.[jcr:score] as [jcr:score], x.* from 
[nt:base] as a
 inner join [nt:base] as x on ischildnode(x, a)
 where ischildnode(a, '/libs') and name(x) = 'install' 
 union select x.[jcr:path] as [jcr:path], x.[jcr:score] as [jcr:score], x.* 
from [nt:base] as a
 inner join [nt:base] as b on ischildnode(b, a)
 inner join [nt:base] as x on ischildnode(x, b)
 where ischildnode(a, '/libs') and name(x) = 'install' 
 union select x.[jcr:path] as [jcr:path], x.[jcr:score] as [jcr:score], x.* 
from [nt:base] as a
 inner join [nt:base] as b on ischildnode(b, a)
 inner join [nt:base] as c on ischildnode(c, b)
 inner join [nt:base] as x on ischildnode(x, c)
 where ischildnode(a, '/libs') and name(x) = 'install' 
{noformat}

Need to check if this is a Oak bug, or a bug in the query tool I use.
            Reporter: Thomas Mueller
            Assignee: Thomas Mueller
             Fix For: 1.10






--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to