You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by al...@apache.org on 2013/08/12 16:22:53 UTC

svn commit: r1513144 - in /jackrabbit/trunk/jackrabbit-core/src: main/java/org/apache/jackrabbit/core/query/lucene/LuceneQueryFactory.java test/java/org/apache/jackrabbit/core/query/SQL2NodeLocalNameTest.java

Author: alexparvulescu
Date: Mon Aug 12 14:22:52 2013
New Revision: 1513144

URL: http://svn.apache.org/r1513144
Log:
JCR-3398 LOWER operand with nested LOCALNAME operand does not work with SQL2
 - patch by Federico Grilli


Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/LuceneQueryFactory.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/SQL2NodeLocalNameTest.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/LuceneQueryFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/LuceneQueryFactory.java?rev=1513144&r1=1513143&r2=1513144&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/LuceneQueryFactory.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/LuceneQueryFactory.java Mon Aug 12 14:22:52 2013
@@ -669,9 +669,7 @@ public class LuceneQueryFactory {
 
     protected Query getNodeLocalNameQuery(int transform, String operator,
             StaticOperand right) throws RepositoryException {
-        if (transform != TRANSFORM_NONE
-                || (!JCR_OPERATOR_EQUAL_TO.equals(operator) && !JCR_OPERATOR_LIKE
-                        .equals(operator))) {
+        if (!JCR_OPERATOR_EQUAL_TO.equals(operator) && !JCR_OPERATOR_LIKE.equals(operator)) {
             throw new UnsupportedRepositoryOperationException();
         }
         String name = evaluator.getValue(right).getString();

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/SQL2NodeLocalNameTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/SQL2NodeLocalNameTest.java?rev=1513144&r1=1513143&r2=1513144&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/SQL2NodeLocalNameTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/SQL2NodeLocalNameTest.java Mon Aug 12 14:22:52 2013
@@ -22,7 +22,7 @@ import org.apache.jackrabbit.commons.Jcr
 
 /**
  * Test case for Node LocalName queries with JCR_SQL2
- * 
+ *
  * Inspired by <a
  * href="https://issues.apache.org/jira/browse/JCR-2956">JCR-2956</a>
  */
@@ -118,4 +118,22 @@ public class SQL2NodeLocalNameTest exten
                 executeSQL2Query("SELECT * FROM [nt:base] as NODE WHERE LOWER(name(NODE)) like 'sql2nodelocalnametest%'"),
                 2);
     }
+
+    /**
+     * test for JCR-3398
+     */
+    public void testLowerLocalNameOrContains() throws Exception {
+        checkResult(
+                executeSQL2Query("SELECT * FROM [nt:base] as NODE WHERE LOWER(localname(NODE)) like 'sql2nodelocalnametest%' OR contains(NODE.*, 'sql2nodelocalnametest')"),
+                2);
+    }
+
+    /**
+     * test for JCR-3398
+     */
+    public void testUpperLocalNameOrContains() throws Exception {
+        checkResult(
+                executeSQL2Query("SELECT * FROM [nt:base] as NODE WHERE UPPER(localname(NODE)) like 'SQL2NODELOCALNAMETEST%' OR contains(NODE.*, 'SQL2NODELOCALNAMETEST')"),
+                2);
+    }
 }