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