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

Alex Parvulescu commented on JCR-3089:
--------------------------------------

that depends on what queries you are running.

For inner joins, the answer *should* be no. it wouldn't be normal to have null 
values for some selectors.
But you can also have outer joins, where you'll probably have this situation, 
and it would be ok. 

Can you run the query directly against the repo and see what results you get? 
I didn't add any functional tests to the patch, just a dummy one to make sure 
that joins over davex don't break anymore.
                
> javax.jcr.RepositoryException when a JOIN SQL2 query is send via Davex and 
> has results
> --------------------------------------------------------------------------------------
>
>                 Key: JCR-3089
>                 URL: https://issues.apache.org/jira/browse/JCR-3089
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-jcr-server, jackrabbit-spi2dav
>            Reporter: Lukas Kahwe Smith
>            Assignee: Alex Parvulescu
>             Fix For: 2.3.1
>
>         Attachments: JCR-3089-v2.patch, JCR-3089.patch
>
>
> see the following thread for details:
> http://www.mail-archive.com/[email protected]/msg17975.html
> assuming a data structure as follows:
> /foo [nt:unstructured]
> /foo/bar [nt:unstructured]
> /foo/bar@lala = huii (lala is string property of bar)
> /ding [nt:unstructured]
> /ding@dong = ##barUUID### (dong is a property of type "Reference")
> then the following code will throw an exception:
> DavexClient Client = new DavexClient(url);
> Repository repo = Client.getRepository();
> Credentials sc = new SimpleCredentials("admin","admin".toCharArray());
> Session s = repo.login(sc,workspace);
> QueryManager qm = s.getWorkspace().getQueryManager();
> String sql = "SELECT data.* FROM [nt:unstructured] AS data WHERE data.lala= 
> 'huii'";
> sql = "SELECT * FROM [nt:unstructured] AS data INNER JOIN [nt:unstructured] 
> AS referring ON referring.[dong] = data.[jcr:uuid] WHERE data.lala = 'huii'";
> sql = "SELECT * FROM [nt:unstructured] AS data INNER JOIN [nt:unstructured] 
> AS referring ON ISDESCENDANTNODE(data, referring) WHERE data.lala = 'huii'";
> Query query = qm.createQuery(sql, Query.JCR_SQL2);
> QueryResult qr = query.execute();
> The first query works just fine and I can iterate over the result. Neither 
> the second nor the third query works.
> In both cases I end up with a javax.jcr.RepositoryException. Note the 
> exception only happens if the query returns results. Aka a join will work 
> just fine if it matches no rows.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to