Author: thomasm
Date: Thu Feb 19 14:13:54 2015
New Revision: 1660892

URL: http://svn.apache.org/r1660892
Log:
OAK-2530 Support IS NULL based property restrictions in the query engine

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/OrderedContentMirrorStoreStrategy.java
    
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/OrderedContentMirrorStoreStrategy.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/OrderedContentMirrorStoreStrategy.java?rev=1660892&r1=1660891&r2=1660892&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/OrderedContentMirrorStoreStrategy.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/OrderedContentMirrorStoreStrategy.java
 Thu Feb 19 14:13:54 2015
@@ -515,7 +515,7 @@ public class OrderedContentMirrorStoreSt
                     v.visit(n);
                     count = v.getEstimatedCount();
                 }
-            } else if (lpr.first == null && lpr.last == null) {
+            } else if (lpr.isNotNullRestriction()) {
                 // property not null case
                 PropertyState ec = 
indexMeta.getProperty(ENTRY_COUNT_PROPERTY_NAME);
                 if (ec != null) {

Modified: 
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java?rev=1660892&r1=1660891&r2=1660892&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java
 Thu Feb 19 14:13:54 2015
@@ -61,6 +61,10 @@ class FilterQueryParser {
         Collection<Filter.PropertyRestriction> propertyRestrictions = 
filter.getPropertyRestrictions();
         if (propertyRestrictions != null && !propertyRestrictions.isEmpty()) {
             for (Filter.PropertyRestriction pr : propertyRestrictions) {
+                if (pr.isNullRestriction()) {
+                    // can not use full "x is null"
+                    continue;
+                }
                 // native query support
                 if (SolrQueryIndex.NATIVE_SOLR_QUERY.equals(pr.propertyName) 
|| SolrQueryIndex.NATIVE_LUCENE_QUERY.equals(pr.propertyName)) {
                     String nativeQueryString = 
String.valueOf(pr.first.getValue(pr.first.getType()));


Reply via email to