You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jb...@apache.org on 2017/07/14 15:19:24 UTC

lucene-solr:master: SOLR-10802: Fix problem with variable assignment

Repository: lucene-solr
Updated Branches:
  refs/heads/master 3df97d3f0 -> ebd130b7e


SOLR-10802: Fix problem with variable assignment


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

Branch: refs/heads/master
Commit: ebd130b7e2720a4a5cfc3c542461f61932caadf0
Parents: 3df97d3
Author: Joel Bernstein <jb...@apache.org>
Authored: Fri Jul 14 11:07:08 2017 -0400
Committer: Joel Bernstein <jb...@apache.org>
Committed: Fri Jul 14 11:13:09 2017 -0400

----------------------------------------------------------------------
 .../solr/client/solrj/io/stream/PlotStream.java | 28 +++++++++++++-------
 .../solrj/io/stream/StreamExpressionTest.java   |  4 +--
 2 files changed, 21 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ebd130b7/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/PlotStream.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/PlotStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/PlotStream.java
index b652de9..c893240 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/PlotStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/PlotStream.java
@@ -155,21 +155,31 @@ public class PlotStream extends TupleStream implements Expressible {
       finished = true;
       Map<String, Object> values = new HashMap<>();
 
-      String plot= stringParams.get("type");
-      StreamEvaluator xvalues = evaluatorParams.get("x");
-      StreamEvaluator yvalues = evaluatorParams.get("y");
+      // add all string based params
+      // these could come from the context, or they will just be treated as straight strings
+      for(Entry<String,String> param : stringParams.entrySet()){
+        if(streamContext.getLets().containsKey(param.getValue())){
+          values.put(param.getKey(), streamContext.getLets().get(param.getValue()));
+        }
+        else{
+          values.put(param.getKey(), param.getValue());
+        }
+      }
+
+      // add all evaluators
+      for(Entry<String,StreamEvaluator> param : evaluatorParams.entrySet()){
+        values.put(param.getKey(), param.getValue().evaluateOverContext());
+      }
 
-      List<Number> y = (List<Number>)yvalues.evaluateOverContext();
-      List<Number> x = null;
+      List<Number> y = (List<Number>)values.get("y");
+      List<Number> x = (List<Number>)values.get("x");
 
-      if(xvalues == null) {
+      if(x == null) {
         //x is null so add a sequence
         x = new ArrayList();
         for(int i=0; i<y.size(); i++) {
           x.add(i+1);
         }
-      } else {
-        x = (List<Number>) xvalues.evaluateOverContext();
       }
 
       List<List<Number>> xy = new ArrayList();
@@ -180,7 +190,7 @@ public class PlotStream extends TupleStream implements Expressible {
         xy.add(pair);
       }
 
-      values.put("plot", plot);
+      values.put("plot", values.get("type"));
       values.put("data", xy);
 
       Tuple tup = new Tuple(values);

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ebd130b7/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 d749ede..6bf320c 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
@@ -6065,7 +6065,7 @@ public class StreamExpressionTest extends SolrCloudTestCase {
 
   @Test
   public void testPlot() throws Exception {
-    String cexpr = "plot(type=scatter, x=array(1,2,3), y=array(5,6,3))";
+    String cexpr = "let(a=array(3,2,3), plot(type=scatter, x=a, y=array(5,6,3)))";
     ModifiableSolrParams paramsLoc = new ModifiableSolrParams();
     paramsLoc.set("expr", cexpr);
     paramsLoc.set("qt", "/stream");
@@ -6080,7 +6080,7 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     List<List<Number>> data = (List<List<Number>>)tuples.get(0).get("data");
     assertTrue(data.size() == 3);
     List<Number> pair1 = data.get(0);
-    assertTrue(pair1.get(0).intValue() == 1);
+    assertTrue(pair1.get(0).intValue() == 3);
     assertTrue(pair1.get(1).intValue() == 5);
     List<Number> pair2 = data.get(1);
     assertTrue(pair2.get(0).intValue() == 2);