You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sa...@apache.org on 2016/06/16 14:09:05 UTC

[1/2] lucene-solr:branch_5_5: LUCENE-7111: DocValuesRangeQuery.newLongRange behaves incorrectly for Long.MAX_VALUE and Long.MIN_VALUE

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_5_5 dac7ea817 -> 52d41a136
  refs/heads/branch_5x a92f330a4 -> c541d59f8


LUCENE-7111: DocValuesRangeQuery.newLongRange behaves incorrectly for Long.MAX_VALUE and Long.MIN_VALUE


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/52d41a13
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/52d41a13
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/52d41a13

Branch: refs/heads/branch_5_5
Commit: 52d41a1368b7ee36375df0099ccc2042ec5cf642
Parents: dac7ea8
Author: Steve Rowe <sa...@apache.org>
Authored: Mon Mar 21 08:59:43 2016 -0400
Committer: Steve Rowe <sa...@apache.org>
Committed: Thu Jun 16 10:02:37 2016 -0400

----------------------------------------------------------------------
 lucene/CHANGES.txt                              |  3 ++
 .../lucene/search/DocValuesRangeQuery.java      |  6 ++++
 .../lucene/search/TestDocValuesRangeQuery.java  | 34 ++++++++++++++++++++
 3 files changed, 43 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/52d41a13/lucene/CHANGES.txt
----------------------------------------------------------------------
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 64cb1d5..bfacde3 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -12,6 +12,9 @@ Bug Fixes
   On top of that with score mode average, the explain would fail with a NPE.
   (Martijn van Groningen)
 
+* LUCENE-7111: DocValuesRangeQuery.newLongRange behaves incorrectly for
+  Long.MAX_VALUE and Long.MIN_VALUE (Ishan Chattopadhyaya via Steve Rowe)
+
 * LUCENE-7187: Block join queries' Weight#extractTerms(...) implementations
   should delegate to the wrapped weight. (Martijn van Groningen)
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/52d41a13/lucene/sandbox/src/java/org/apache/lucene/search/DocValuesRangeQuery.java
----------------------------------------------------------------------
diff --git a/lucene/sandbox/src/java/org/apache/lucene/search/DocValuesRangeQuery.java b/lucene/sandbox/src/java/org/apache/lucene/search/DocValuesRangeQuery.java
index 9dec2c1..2b04492 100644
--- a/lucene/sandbox/src/java/org/apache/lucene/search/DocValuesRangeQuery.java
+++ b/lucene/sandbox/src/java/org/apache/lucene/search/DocValuesRangeQuery.java
@@ -142,6 +142,9 @@ public final class DocValuesRangeQuery extends Query {
           } else if (includeLower) {
             min = (long) lowerVal;
           } else {
+            if ((long) lowerVal == Long.MAX_VALUE) {
+              return null;
+            }
             min = 1 + (long) lowerVal;
           }
 
@@ -151,6 +154,9 @@ public final class DocValuesRangeQuery extends Query {
           } else if (includeUpper) {
             max = (long) upperVal;
           } else {
+            if ((long) upperVal == Long.MIN_VALUE) {
+              return null;
+            }
             max = -1 + (long) upperVal;
           }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/52d41a13/lucene/sandbox/src/test/org/apache/lucene/search/TestDocValuesRangeQuery.java
----------------------------------------------------------------------
diff --git a/lucene/sandbox/src/test/org/apache/lucene/search/TestDocValuesRangeQuery.java b/lucene/sandbox/src/test/org/apache/lucene/search/TestDocValuesRangeQuery.java
index b13774c..47db2d2 100644
--- a/lucene/sandbox/src/test/org/apache/lucene/search/TestDocValuesRangeQuery.java
+++ b/lucene/sandbox/src/test/org/apache/lucene/search/TestDocValuesRangeQuery.java
@@ -275,4 +275,38 @@ public class TestDocValuesRangeQuery extends LuceneTestCase {
     dir.close();
   }
 
+  public void testLongRangeBoundaryValues() throws IOException {
+    Directory dir = newDirectory();
+    RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
+
+    Document doc = new Document();
+    doc.add(new SortedNumericDocValuesField("dv", 100l));
+    iw.addDocument(doc);
+
+    doc = new Document();
+    doc.add(new SortedNumericDocValuesField("dv", 200l));
+    iw.addDocument(doc);
+
+    iw.commit();
+
+    final IndexReader reader = iw.getReader();
+    final IndexSearcher searcher = newSearcher(reader, false);
+    iw.close();
+
+    Long min = Long.MIN_VALUE;
+    Long max = Long.MIN_VALUE;
+    Query query = DocValuesRangeQuery.newLongRange("dv", min, max, true, false);
+    TopDocs td = searcher.search(query, searcher.reader.maxDoc(), Sort.INDEXORDER);
+    assertEquals(0, td.totalHits);
+
+    min = Long.MAX_VALUE;
+    max = Long.MAX_VALUE;
+    query = DocValuesRangeQuery.newLongRange("dv", min, max, false, true);
+    td = searcher.search(query, searcher.reader.maxDoc(), Sort.INDEXORDER);
+    assertEquals(0, td.totalHits);
+
+    reader.close();
+    dir.close();
+  }
+
 }


[2/2] lucene-solr:branch_5x: LUCENE-7111: DocValuesRangeQuery.newLongRange behaves incorrectly for Long.MAX_VALUE and Long.MIN_VALUE

Posted by sa...@apache.org.
LUCENE-7111: DocValuesRangeQuery.newLongRange behaves incorrectly for Long.MAX_VALUE and Long.MIN_VALUE


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/c541d59f
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/c541d59f
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/c541d59f

Branch: refs/heads/branch_5x
Commit: c541d59f8dc19a174059214874b0d212832c2498
Parents: a92f330
Author: Steve Rowe <sa...@apache.org>
Authored: Mon Mar 21 08:59:43 2016 -0400
Committer: Steve Rowe <sa...@apache.org>
Committed: Thu Jun 16 10:06:42 2016 -0400

----------------------------------------------------------------------
 .../lucene/search/DocValuesRangeQuery.java      |  6 ++++
 .../lucene/search/TestDocValuesRangeQuery.java  | 34 ++++++++++++++++++++
 2 files changed, 40 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c541d59f/lucene/sandbox/src/java/org/apache/lucene/search/DocValuesRangeQuery.java
----------------------------------------------------------------------
diff --git a/lucene/sandbox/src/java/org/apache/lucene/search/DocValuesRangeQuery.java b/lucene/sandbox/src/java/org/apache/lucene/search/DocValuesRangeQuery.java
index 9dec2c1..2b04492 100644
--- a/lucene/sandbox/src/java/org/apache/lucene/search/DocValuesRangeQuery.java
+++ b/lucene/sandbox/src/java/org/apache/lucene/search/DocValuesRangeQuery.java
@@ -142,6 +142,9 @@ public final class DocValuesRangeQuery extends Query {
           } else if (includeLower) {
             min = (long) lowerVal;
           } else {
+            if ((long) lowerVal == Long.MAX_VALUE) {
+              return null;
+            }
             min = 1 + (long) lowerVal;
           }
 
@@ -151,6 +154,9 @@ public final class DocValuesRangeQuery extends Query {
           } else if (includeUpper) {
             max = (long) upperVal;
           } else {
+            if ((long) upperVal == Long.MIN_VALUE) {
+              return null;
+            }
             max = -1 + (long) upperVal;
           }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c541d59f/lucene/sandbox/src/test/org/apache/lucene/search/TestDocValuesRangeQuery.java
----------------------------------------------------------------------
diff --git a/lucene/sandbox/src/test/org/apache/lucene/search/TestDocValuesRangeQuery.java b/lucene/sandbox/src/test/org/apache/lucene/search/TestDocValuesRangeQuery.java
index b13774c..47db2d2 100644
--- a/lucene/sandbox/src/test/org/apache/lucene/search/TestDocValuesRangeQuery.java
+++ b/lucene/sandbox/src/test/org/apache/lucene/search/TestDocValuesRangeQuery.java
@@ -275,4 +275,38 @@ public class TestDocValuesRangeQuery extends LuceneTestCase {
     dir.close();
   }
 
+  public void testLongRangeBoundaryValues() throws IOException {
+    Directory dir = newDirectory();
+    RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
+
+    Document doc = new Document();
+    doc.add(new SortedNumericDocValuesField("dv", 100l));
+    iw.addDocument(doc);
+
+    doc = new Document();
+    doc.add(new SortedNumericDocValuesField("dv", 200l));
+    iw.addDocument(doc);
+
+    iw.commit();
+
+    final IndexReader reader = iw.getReader();
+    final IndexSearcher searcher = newSearcher(reader, false);
+    iw.close();
+
+    Long min = Long.MIN_VALUE;
+    Long max = Long.MIN_VALUE;
+    Query query = DocValuesRangeQuery.newLongRange("dv", min, max, true, false);
+    TopDocs td = searcher.search(query, searcher.reader.maxDoc(), Sort.INDEXORDER);
+    assertEquals(0, td.totalHits);
+
+    min = Long.MAX_VALUE;
+    max = Long.MAX_VALUE;
+    query = DocValuesRangeQuery.newLongRange("dv", min, max, false, true);
+    td = searcher.search(query, searcher.reader.maxDoc(), Sort.INDEXORDER);
+    assertEquals(0, td.totalHits);
+
+    reader.close();
+    dir.close();
+  }
+
 }