jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From S├ębastien Launay (JIRA) <j...@apache.org>
Subject [jira] Created: (JCR-1408) Invalid query results when using jcr:like with a case transform function and a pattern not starting with a wildcard
Date Thu, 21 Feb 2008 19:55:19 GMT
Invalid query results when using jcr:like with a case transform function and a pattern not
starting with a wildcard
-------------------------------------------------------------------------------------------------------------------

                 Key: JCR-1408
                 URL: https://issues.apache.org/jira/browse/JCR-1408
             Project: Jackrabbit
          Issue Type: Bug
          Components: jackrabbit-core, query
    Affects Versions: core 1.4.1, 1.4
         Environment: Ubuntu gutsy, Sun JDK 1.5.0_08
            Reporter: S├ębastien Launay


If the repository contains nodes with the following value for the property name :
john
JOhn
joe
Joey

and we run the following query :
//element(*, document)/*[jcr:like(fn:lower-case(@name), 'joh%')]")
then all the previous nodes will match especially the last 2 nodes.

The reason is the use of two range scans from the lucene term index:
..._name_jOH
..................
..._name_joh_

and

..._name_JOH
..................
..._name_Joh_

The first range will contains ..._name_joe property and the second will contains ..._name_Joey.
But the pattern 'joh%' and so the regexp '.*' because of the range scan will match
the substring values of the properties ('' in the first range and 'y' in the second range).

The solution is to use the full pattern (ie 'joh.*') for matching each properties.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message