You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by hsp <pi...@hotmail.com> on 2017/09/15 12:10:02 UTC
Path starting with number throws query exception in SQL2
Hi all,
We use the 2.10 version of jackrabbit.
Searching with SQL2, the expressions
SELECT [*] FROM [nt:file] as f WHERE ISCHILDNODE(f,[/Root/01e])
or
the expression
SELECT [*] FROM [nt:file] as f WHERE ISDESCENDANTNODE(f,[/Root/01e])
are throwing exceptions, like:
javax.jcr.query.InvalidQueryException: Query:
SELECT [*] FROM [nt:file] as f WHERE ISDESCENDANTNODE(f,[/Root/(*)01e])
at
org.apache.jackrabbit.commons.query.sql2.Parser.getSyntaxError(Parser.java:978)
at
org.apache.jackrabbit.commons.query.sql2.Parser.getSyntaxError(Parser.java:959)
at
org.apache.jackrabbit.commons.query.sql2.Parser.readDecimal(Parser.java:937)
at org.apache.jackrabbit.commons.query.sql2.Parser.read(Parser.java:846)
at org.apache.jackrabbit.commons.query.sql2.Parser.readAny(Parser.java:667)
at
org.apache.jackrabbit.commons.query.sql2.Parser.readName(Parser.java:158)
at
org.apache.jackrabbit.commons.query.sql2.Parser.readPath(Parser.java:384)
at
org.apache.jackrabbit.commons.query.sql2.Parser.parseConditionFuntionIf(Parser.java:365)
at
org.apache.jackrabbit.commons.query.sql2.Parser.parseCondition(Parser.java:258)
at
org.apache.jackrabbit.commons.query.sql2.Parser.parseAnd(Parser.java:241)
at
org.apache.jackrabbit.commons.query.sql2.Parser.parseConstraint(Parser.java:233)
at
org.apache.jackrabbit.commons.query.sql2.Parser.createQueryObjectModel(Parser.java:117)
at
org.apache.jackrabbit.commons.query.sql2.SQL2QOMBuilder.createQueryObjectModel(SQL2QOMBuilder.java:55)
at
org.apache.jackrabbit.core.query.QOMQueryFactory.createQuery(QOMQueryFactory.java:69)
at
org.apache.jackrabbit.core.query.CompoundQueryFactory.createQuery(CompoundQueryFactory.java:67)
at
org.apache.jackrabbit.core.query.QueryManagerImpl$2.perform(QueryManagerImpl.java:95)
at
org.apache.jackrabbit.core.query.QueryManagerImpl$2.perform(QueryManagerImpl.java:91)
at
org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)
at
org.apache.jackrabbit.core.query.QueryManagerImpl.perform(QueryManagerImpl.java:197)
at
org.apache.jackrabbit.core.query.QueryManagerImpl.createQuery(QueryManagerImpl.java:91)
...
If I use some path like: /Root/e12 instead of /Root/01e, it works.
I think the problem is with the number in the beggining in the path.
I had tryied to translate using ISO9075 but without success.
Is there some chance to the query work with this kind of node names in path?
Regards,
Helio.
--
Sent from: http://jackrabbit.510166.n4.nabble.com/Jackrabbit-Users-f510167.html
Re: Path starting with number throws query exception in SQL2
Posted by multi <Ze...@web.de>.
Hi,
we know this case from xpath queries, don't know if there is the same for
SQL2 Syntax.
We had to use an escaped Part for nodes starting with numbers:
https://issues.apache.org/jira/browse/JCR-579
So for example i would use for a nodename "01e" the query part "_x0030_1e".
Best regards.
--
Sent from: http://jackrabbit.510166.n4.nabble.com/Jackrabbit-Users-f510167.html