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

Thomas Mueller commented on JCR-2933:
-------------------------------------

> mark the +3 way up as experimental, than having something that does not work 
> at all. 

That's an option, but then it should be documented.

> There are also very few test cases
> I find it worrying that the simple outer join (2 way if you will) does not 
> work properly.

Yes, that's why I think we should add more test cases :-)

> I'm not even sure that is within JR's capabilities. 

I know Jackrabbit doesn't support explicitly nested joins (using "()"), but 
nesting can be influences with placing the join condition:

SELECT * FROM c LEFT OUTER JOIN a LEFT OUTER JOIN b ON ISCHILDNODE(a, b) ON 
ISCHILDNODE(a, c)
==>
SELECT * FROM c LEFT OUTER JOIN (a LEFT OUTER JOIN b ON ISCHILDNODE(a, b)) ON 
ISCHILDNODE(a, c)

and
SELECT * FROM a LEFT OUTER JOIN b ON ISCHILDNODE(a, b) LEFT OUTER JOIN c ON 
ISCHILDNODE(a, c)
==>
SELECT * FROM (a LEFT OUTER JOIN b ON ISCHILDNODE(a, b)) LEFT OUTER JOIN c ON 
ISCHILDNODE(a, c)



> SQL2 Left Outer Join
> --------------------
>
>                 Key: JCR-2933
>                 URL: https://issues.apache.org/jira/browse/JCR-2933
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core
>    Affects Versions: 2.2.4
>            Reporter: Manfred Sattler
>            Assignee: Jukka Zitting
>         Attachments: JCR-2933-v2.patch, JCR-2933-v3.patch, JCR-2933.patch
>
>
> Create this nodes.
> def n1 = root.addNode("node1", "sling:SamplePage");
> n1.setProperty("n1prop1", "page1");
> def n2 = n1.addNode("node2", "sling:SampleContent");
> n2.setProperty("n2prop1", "content1");
> Execute this Query:
> Select * from [sling:SamplePage] as page left outer join 
> [sling:SampleContent] as content on ISDESCENDANTNODE(content,page) where 
> page.n1prop1 = 'page1' and content.n2prop1 = 'content1';
> The resultset have 1 row with 2 Nodes. This OK.
> Then execute this:
> Select * from [sling:SamplePage] as page left outer join 
> [sling:SampleContent] as content on ISDESCENDANTNODE(content,page) where 
> page.n1prop1 = 'page1' and content.n2prop1 = 'XXXXX';
> The resultset has 1 row with 1 node.
> This wrong. The result should be 0 rows.
> Old Versions, prior 2.2.2 have also 0 rows as result.
> Also, if nodes "n2" not exists, jackrabbit reports 1 row as result.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to