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()));