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