Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
The following query returns the wrong nodes:
/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'
If I change the selector name to "x" in each subquery, then it works. There is no XPath version of this workaround:
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'
Need to check if this is a Oak bug, or a bug in the query tool I use.
Attachments
Issue Links
- is related to
-
OAK-9310 Wrong result in Join query with contains condition
- Open