jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Parvulescu (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JCR-3089) javax.jcr.RepositoryException when a JOIN SQL2 query is send via Davex and has results
Date Thu, 06 Oct 2011 13:20:30 GMT

    [ 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/users@jackrabbit.apache.org/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

        

Mime
View raw message