You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2018/09/07 07:49:55 UTC

[46/50] [abbrv] lucene-solr:jira/http2: SOLR-12749: timeseries() expression missing sum() results for empty buckets

SOLR-12749: timeseries() expression missing sum() results for empty buckets


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

Branch: refs/heads/jira/http2
Commit: 98611d33a7f334ece5faba594120ac3398a0009d
Parents: ccd9f6f
Author: Joel Bernstein <jb...@apache.org>
Authored: Thu Sep 6 20:34:11 2018 -0400
Committer: Joel Bernstein <jb...@apache.org>
Committed: Thu Sep 6 20:34:26 2018 -0400

----------------------------------------------------------------------
 .../client/solrj/io/stream/TimeSeriesStream.java    |  2 ++
 .../solrj/io/stream/StreamExpressionTest.java       | 16 +++++++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/98611d33/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/TimeSeriesStream.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/TimeSeriesStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/TimeSeriesStream.java
index cb743e9..dcd938e 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/TimeSeriesStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/TimeSeriesStream.java
@@ -397,6 +397,8 @@ public class TimeSeriesStream extends TupleStream implements Expressible  {
             } else {
               t.put(identifier, d.doubleValue());
             }
+          } else {
+            t.put(identifier, 0);
           }
           ++m;
         } else {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/98611d33/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionTest.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionTest.java
index e5455b5..b9c6153 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionTest.java
@@ -1856,7 +1856,7 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     updateRequest.commit(cluster.getSolrClient(), COLLECTIONORALIAS);
 
     String expr = "timeseries("+COLLECTIONORALIAS+", q=\"*:*\", start=\"2013-01-01T01:00:00.000Z\", " +
-        "end=\"2016-12-01T01:00:00.000Z\", " +
+        "end=\"2017-12-01T01:00:00.000Z\", " +
         "gap=\"+1YEAR\", " +
         "field=\"test_dt\", " +
         "count(*), sum(price_f), max(price_f), min(price_f))";
@@ -1870,7 +1870,7 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     StreamContext context = new StreamContext();
     solrStream.setStreamContext(context);
     List<Tuple> tuples = getTuples(solrStream);
-    assertTrue(tuples.size() == 4);
+    assertTrue(tuples.size() == 5);
 
     assertTrue(tuples.get(0).get("test_dt").equals("2013-01-01T01:00:00Z"));
     assertTrue(tuples.get(0).getLong("count(*)").equals(100L));
@@ -1896,6 +1896,12 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     assertTrue(tuples.get(3).getDouble("max(price_f)").equals(400D));
     assertTrue(tuples.get(3).getDouble("min(price_f)").equals(400D));
 
+    assertTrue(tuples.get(4).get("test_dt").equals("2017-01-01T01:00:00Z"));
+    assertEquals((long)tuples.get(4).getLong("count(*)"), 0L);
+    assertEquals(tuples.get(4).getDouble("sum(price_f)"), 0D, 0);
+    assertEquals(tuples.get(4).getDouble("max(price_f)"),0D, 0);
+    assertEquals(tuples.get(4).getDouble("min(price_f)"), 0D, 0);
+
 
     expr = "timeseries("+COLLECTIONORALIAS+", q=\"*:*\", start=\"2013-01-01T01:00:00.000Z\", " +
         "end=\"2016-12-01T01:00:00.000Z\", " +
@@ -1995,9 +2001,9 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     assertTrue(tuples.size() == 5);
     assertTrue(tuples.get(0).get("test_dt").equals("2012-01"));
     assertTrue(tuples.get(0).getLong("count(*)").equals(0L));
-    assertTrue(tuples.get(0).getDouble("sum(price_f)") == null);
-    assertTrue(tuples.get(0).getDouble("max(price_f)") == null);
-    assertTrue(tuples.get(0).getDouble("min(price_f)") == null);
+    assertTrue(tuples.get(0).getDouble("sum(price_f)") == 0);
+    assertTrue(tuples.get(0).getDouble("max(price_f)") == 0);
+    assertTrue(tuples.get(0).getDouble("min(price_f)") == 0);
 
     assertTrue(tuples.get(1).get("test_dt").equals("2013-01"));
     assertTrue(tuples.get(1).getLong("count(*)").equals(100L));