Author: thomasm
Date: Tue Jun 14 11:48:26 2016
New Revision: 1748390

URL: http://svn.apache.org/viewvc?rev=1748390&view=rev
Log:
OAK-3574 Query engine: support p=lowercase(x) and other function-based indexes 
(WIP)

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/FilterTest.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java?rev=1748390&r1=1748389&r2=1748390&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java
 Tue Jun 14 11:48:26 2016
@@ -25,6 +25,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map.Entry;
 import java.util.Set;
+import java.util.TreeMap;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -405,8 +406,9 @@ public class FilterImpl implements Filte
         buff.append(", path=").append(getPathPlan());
         if (!propertyRestrictions.isEmpty()) {
             buff.append(", property=[");
-            Iterator<Entry<String, Collection<PropertyRestriction>>> iterator 
= propertyRestrictions
-                    .asMap().entrySet().iterator();
+            Iterator<Entry<String, Collection<PropertyRestriction>>> iterator 
= 
+                    new TreeMap<String, 
Collection<PropertyRestriction>>(propertyRestrictions
+                    .asMap()).entrySet().iterator();
             while (iterator.hasNext()) {
                 Entry<String, Collection<PropertyRestriction>> p = 
iterator.next();
                 buff.append(p.getKey()).append("=").append(p.getValue());

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/FilterTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/FilterTest.java?rev=1748390&r1=1748389&r2=1748390&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/FilterTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/FilterTest.java
 Tue Jun 14 11:48:26 2016
@@ -82,14 +82,14 @@ public class FilterTest {
         sql2 = "select [jcr:path] from [nt:base] where length([test]) <= 10";
         assertEquals("Filter(query=select [jcr:path] from [nt:base] " + 
                 "where length([test]) <= 10, " + 
-                "path=*, property=[test=[is not null], " + 
-                "function*length*@test=[..10]]])", 
createFilterSQL(sql2).toString());
+                "path=*, property=[function*length*@test=[..10]], " + 
+                "test=[is not null]])", createFilterSQL(sql2).toString());
         
         sql2 = "select [jcr:path] from [nt:base] where length([test]) > 2";
         assertEquals("Filter(query=select [jcr:path] from [nt:base] " + 
                 "where length([test]) > 2, " + 
-                "path=*, property=[test=[is not null], " + 
-                "function*length*@test=[(2..]])", 
createFilterSQL(sql2).toString());
+                "path=*, property=[function*length*@test=[(2..], " + 
+                "test=[is not null]])", createFilterSQL(sql2).toString());
         
 
     }


Reply via email to