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/03/03 16:34:53 UTC
[3/7] lucene-solr:branch_6x: Calcite changes
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/3370dbed/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java b/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
index 4ce2798..35f7ad0 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
@@ -18,11 +18,8 @@ package org.apache.solr.handler;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
-import com.facebook.presto.sql.parser.SqlParser;
-import com.facebook.presto.sql.tree.Statement;
import org.apache.solr.client.solrj.io.Tuple;
import org.apache.solr.client.solrj.io.stream.ExceptionStream;
import org.apache.solr.client.solrj.io.stream.SolrStream;
@@ -34,13 +31,11 @@ import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.SolrParams;
import org.junit.After;
-import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Test;
public class TestSQLHandler extends AbstractFullDistribZkTestBase {
-
static {
schemaString = "schema-sql.xml";
}
@@ -49,11 +44,6 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
sliceCount = 2;
}
- @AfterClass
- public static void afterSuperClass() {
-
- }
-
protected String getCloudSolrConfig() {
return "solrconfig-sql.xml";
}
@@ -80,7 +70,7 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
@Test
public void doTest() throws Exception {
waitForRecoveriesToFinish(false);
- testPredicate();
+
testBasicSelect();
testWhere();
testMixedCaseFields();
@@ -95,213 +85,10 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
testParallelBasicGrouping();
testParallelSelectDistinct();
testParallelTimeSeriesGrouping();
- testCatalogStream();
- testSchemasStream();
- testTablesStream();
- }
-
- private void testPredicate() throws Exception {
-
- SqlParser parser = new SqlParser();
- String sql = "select a from b where c = 'd'";
- Statement statement = parser.createStatement(sql);
- SQLHandler.SQLVisitor sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, 0);
-
- assertEquals("(c:\"d\")", sqlVistor.query);
-
- parser = new SqlParser();
- sql = "select a from b where c = 5";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, 0);
-
- assertEquals("(c:\"5\")", sqlVistor.query);
-
- parser = new SqlParser();
- sql = "select a from b where c <> 'd'";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, 0);
-
- assertEquals("(-c:\"d\")", sqlVistor.query);
-
- parser = new SqlParser();
- sql = "select a from b where c <> 5";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, 0);
-
- assertEquals("(-c:\"5\")", sqlVistor.query);
-
- parser = new SqlParser();
- sql = "select a from b where c > 'd'";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, 0);
-
- assertEquals("(c:{\"d\" TO *])", sqlVistor.query);
-
- parser = new SqlParser();
- sql = "select a from b where c > 5";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, 0);
-
- assertEquals("(c:{\"5\" TO *])", sqlVistor.query);
-
- parser = new SqlParser();
- sql = "select a from b where c >= 'd'";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, 0);
-
- assertEquals("(c:[\"d\" TO *])", sqlVistor.query);
-
- parser = new SqlParser();
- sql = "select a from b where c >= 5";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, 0);
-
- assertEquals("(c:[\"5\" TO *])", sqlVistor.query);
-
- parser = new SqlParser();
- sql = "select a from b where c < 'd'";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, 0);
-
- assertEquals("(c:[* TO \"d\"})", sqlVistor.query);
-
- parser = new SqlParser();
- sql = "select a from b where c < 5";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, 0);
-
- assertEquals("(c:[* TO \"5\"})", sqlVistor.query);
-
- parser = new SqlParser();
- sql = "select a from b where c <= 'd'";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, 0);
-
- assertEquals("(c:[* TO \"d\"])", sqlVistor.query);
-
- parser = new SqlParser();
- sql = "select a from b where c <= 5";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, 0);
-
- assertEquals("(c:[* TO \"5\"])", sqlVistor.query);
-
- //Add parens
- parser = new SqlParser();
- sql = "select a from b where (c = 'd')";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, new Integer(0));
-
- assert(sqlVistor.query.equals("(c:\"d\")"));
-
-
- //Upper case
- parser = new SqlParser();
- sql = "select a from b where ('CcC' = 'D')";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, new Integer(0));
- assert(sqlVistor.query.equals("(CcC:\"D\")"));
-
- //Phrase
- parser = new SqlParser();
- sql = "select a from b where (c = 'd d')";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, new Integer(0));
-
- assert(sqlVistor.query.equals("(c:\"d d\")"));
-
- // AND
- parser = new SqlParser();
- sql = "select a from b where ((c = 'd') AND (l = 'z'))";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, new Integer(0));
-
- assert(sqlVistor.query.equals("((c:\"d\") AND (l:\"z\"))"));
-
- // OR
-
- parser = new SqlParser();
- sql = "select a from b where ((c = 'd') OR (l = 'z'))";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, new Integer(0));
-
- assert(sqlVistor.query.equals("((c:\"d\") OR (l:\"z\"))"));
-
- // AND NOT
-
- parser = new SqlParser();
- sql = "select a from b where ((c = 'd') AND NOT (l = 'z'))";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, new Integer(0));
-
- assert(sqlVistor.query.equals("((c:\"d\") AND -(l:\"z\"))"));
-
- // NESTED
- parser = new SqlParser();
- sql = "select a from b where ((c = 'd') OR ((l = 'z') AND (m = 'j')))";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, new Integer(0));
-
- assert(sqlVistor.query.equals("((c:\"d\") OR ((l:\"z\") AND (m:\"j\")))"));
-
- // NESTED NOT
- parser = new SqlParser();
- sql = "select a from b where ((c = 'd') OR ((l = 'z') AND NOT (m = 'j')))";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, new Integer(0));
-
- assert(sqlVistor.query.equals("((c:\"d\") OR ((l:\"z\") AND -(m:\"j\")))"));
-
- // RANGE - Will have to do until SQL BETWEEN is supported.
- // NESTED
- parser = new SqlParser();
- sql = "select a from b where ((c = '[0 TO 100]') OR ((l = '(z)') AND (m = 'j')))";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, new Integer(0));
-
- assert(sqlVistor.query.equals("((c:[0 TO 100]) OR ((l:(z)) AND (m:\"j\")))"));
-
- // Wildcard
- parser = new SqlParser();
- sql = "select a from b where ((c = '[0 TO 100]') OR ((l = '(z*)') AND (m = 'j')))";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, new Integer(0));
- assert(sqlVistor.query.equals("((c:[0 TO 100]) OR ((l:(z*)) AND (m:\"j\")))"));
-
- // Complex Lucene/Solr Query
- parser = new SqlParser();
- sql = "select a from b where (('c' = '[0 TO 100]') OR ((l = '(z*)') AND ('M' = '(j OR (k NOT s))')))";
- statement = parser.createStatement(sql);
- sqlVistor = new SQLHandler.SQLVisitor(new StringBuilder());
- sqlVistor.process(statement, new Integer(0));
- assert(sqlVistor.query.equals("((c:[0 TO 100]) OR ((l:(z*)) AND (M:(j OR (k NOT s)))))"));
}
private void testBasicSelect() throws Exception {
try {
-
CloudJettyRunner jetty = this.cloudJettys.get(0);
del("*:*");
@@ -317,16 +104,18 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
indexDoc(sdoc("id", "7", "text", "XXXX XXXX", "str_s", "c", "field_i", "50"));
indexDoc(sdoc("id", "8", "text", "XXXX XXXX", "str_s", "c", "field_i", "60"));
commit();
-
+
+
+ System.out.println("############# testBasicSelect() ############");
+
SolrParams sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select 'id', field_i, str_s from collection1 where 'text'='XXXX' order by field_i desc");
+ "stmt", "select id, field_i, str_s from collection1 where (text='(XXXX)' OR text='XXXX') AND text='XXXX' order by field_i desc");
SolrStream solrStream = new SolrStream(jetty.url, sParams);
List<Tuple> tuples = getTuples(solrStream);
assert(tuples.size() == 8);
-
- Tuple tuple = null;
+ Tuple tuple;
tuple = tuples.get(0);
assert(tuple.getLong("id") == 8);
@@ -369,7 +158,7 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
assert(tuple.get("str_s").equals("a"));
//Test unlimited unsorted result. Should sort on _version_ desc
- sParams = mapParams(CommonParams.QT, "/sql", "stmt", "select 'id', field_i, str_s from collection1 where 'text'='XXXX'");
+ sParams = mapParams(CommonParams.QT, "/sql", "stmt", "select id, field_i, str_s from collection1 where text='XXXX'");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -475,7 +264,6 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
assert(tuple.getLong("myInt") == 7);
assert(tuple.get("myString").equals("a"));
-
sParams = mapParams(CommonParams.QT, "/sql",
"stmt", "select id as myId, field_i as myInt, str_s as myString from collection1 where text='XXXX' AND id='(1 2 3)' order by field_i desc");
@@ -588,29 +376,30 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(6);
assertEquals(8L, tuple.get("id"));
+ // TODO requires different Calcite SQL conformance level
// Not Equals !=
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select id from collection1 where id != 1 order by id asc limit 10");
-
- solrStream = new SolrStream(jetty.url, sParams);
- tuples = getTuples(solrStream);
-
- assertEquals(7, tuples.size());
-
- tuple = tuples.get(0);
- assertEquals(2L, tuple.get("id"));
- tuple = tuples.get(1);
- assertEquals(3L, tuple.get("id"));
- tuple = tuples.get(2);
- assertEquals(4L, tuple.get("id"));
- tuple = tuples.get(3);
- assertEquals(5L, tuple.get("id"));
- tuple = tuples.get(4);
- assertEquals(6L, tuple.get("id"));
- tuple = tuples.get(5);
- assertEquals(7L, tuple.get("id"));
- tuple = tuples.get(6);
- assertEquals(8L, tuple.get("id"));
+// sParams = mapParams(CommonParams.QT, "/sql",
+// "stmt", "select id from collection1 where id != 1 order by id asc limit 10");
+//
+// solrStream = new SolrStream(jetty.url, sParams);
+// tuples = getTuples(solrStream);
+//
+// assertEquals(7, tuples.size());
+//
+// tuple = tuples.get(0);
+// assertEquals(2L, tuple.get("id"));
+// tuple = tuples.get(1);
+// assertEquals(3L, tuple.get("id"));
+// tuple = tuples.get(2);
+// assertEquals(4L, tuple.get("id"));
+// tuple = tuples.get(3);
+// assertEquals(5L, tuple.get("id"));
+// tuple = tuples.get(4);
+// assertEquals(6L, tuple.get("id"));
+// tuple = tuples.get(5);
+// assertEquals(7L, tuple.get("id"));
+// tuple = tuples.get(6);
+// assertEquals(8L, tuple.get("id"));
// Less than
sParams = mapParams(CommonParams.QT, "/sql",
@@ -669,7 +458,6 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
}
}
-
private void testMixedCaseFields() throws Exception {
try {
@@ -688,15 +476,16 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
indexDoc(sdoc("id", "7", "Text_t", "XXXX XXXX", "Str_s", "c", "Field_i", "50"));
indexDoc(sdoc("id", "8", "Text_t", "XXXX XXXX", "Str_s", "c", "Field_i", "60"));
commit();
- SolrParams sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select id, Field_i, Str_s from Collection1 where Text_t='XXXX' order by Field_i desc");
+
+ SolrParams sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select id, Field_i, Str_s from collection1 where Text_t='XXXX' order by Field_i desc");
SolrStream solrStream = new SolrStream(jetty.url, sParams);
List<Tuple> tuples = getTuples(solrStream);
assert(tuples.size() == 8);
- Tuple tuple = null;
+ Tuple tuple;
tuple = tuples.get(0);
assert(tuple.getLong("id") == 8);
@@ -738,8 +527,9 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
assert(tuple.getLong("Field_i") == 7);
assert(tuple.get("Str_s").equals("a"));
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select Str_s, sum(Field_i) from Collection1 where 'id'='(1 8)' group by Str_s having (sum(Field_i) = 7 OR 'sum(Field_i)' = 60) order by 'sum(Field_i)' desc");
+ // TODO get sum(Field_i) as named one
+ sParams = mapParams(CommonParams.QT, "/sql",
+ "stmt", "select Str_s, sum(Field_i) from collection1 where id='(1 8)' group by Str_s having (sum(Field_i) = 7 OR sum(Field_i) = 60) order by sum(Field_i) desc");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -748,14 +538,14 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
assert(tuple.get("Str_s").equals("c"));
- assert(tuple.getDouble("sum(Field_i)") == 60);
+ assert(tuple.getDouble("EXPR$1") == 60);
tuple = tuples.get(1);
assert(tuple.get("Str_s").equals("a"));
- assert(tuple.getDouble("sum(Field_i)") == 7);
+ assert(tuple.getDouble("EXPR$1") == 7);
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select Str_s, sum(Field_i) from Collection1 where 'id'='(1 8)' group by 'Str_s' having (sum(Field_i) = 7 OR 'sum(Field_i)' = 60) order by 'sum(Field_i)' desc");
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select Str_s, sum(Field_i) from collection1 where id='(1 8)' group by Str_s having (sum(Field_i) = 7 OR sum(Field_i) = 60) order by sum(Field_i) desc");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -764,13 +554,11 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
assert(tuple.get("Str_s").equals("c"));
- assert(tuple.getDouble("sum(Field_i)") == 60);
+ assert(tuple.getDouble("EXPR$1") == 60);
tuple = tuples.get(1);
assert(tuple.get("Str_s").equals("a"));
- assert(tuple.getDouble("sum(Field_i)") == 7);
-
-
+ assert(tuple.getDouble("EXPR$1") == 7);
} finally {
delete();
}
@@ -795,15 +583,14 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
indexDoc(sdoc("id", "8", "text", "XXXX XXXX", "str_s", "c", "field_i", "60"));
commit();
- SolrParams sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select id, field_i, str_s from collection1 where text='XXXX' order by field_iff desc");
+ SolrParams sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select id, str_s from collection1 where text='XXXX' order by field_iff desc");
SolrStream solrStream = new SolrStream(jetty.url, sParams);
Tuple tuple = getTuple(new ExceptionStream(solrStream));
assert(tuple.EOF);
assert(tuple.EXCEPTION);
- //A parse exception detected before being sent to the search engine
- assert(tuple.getException().contains("Fields in the sort spec must be included in the field list"));
+ assert(tuple.getException().contains("Column 'field_iff' not found in any table"));
sParams = mapParams(CommonParams.QT, "/sql",
"stmt", "select id, field_iff, str_s from collection1 where text='XXXX' order by field_iff desc");
@@ -812,38 +599,26 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = getTuple(new ExceptionStream(solrStream));
assert(tuple.EOF);
assert(tuple.EXCEPTION);
- //An exception not detected by the parser thrown from the /select handler
- assert(tuple.getException().contains("sort param field can't be found:"));
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select str_s, count(*), sum(field_iff), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s having ((sum(field_iff) = 19) AND (min(field_i) = 8))");
+ assert(tuple.getException().contains("Column 'field_iff' not found in any table"));
- solrStream = new SolrStream(jetty.url, sParams);
- tuple = getTuple(new ExceptionStream(solrStream));
- assert(tuple.EOF);
- assert(tuple.EXCEPTION);
- //An exception not detected by the parser thrown from the /export handler
- assert(tuple.getException().contains("undefined field:"));
-
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select str_s, count(*), blah(field_iff), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s having ((sum(field_iff) = 19) AND (min(field_i) = 8))");
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), sum(field_iff), min(field_i), max(field_i), cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s having ((sum(field_iff) = 19) AND (min(field_i) = 8))");
solrStream = new SolrStream(jetty.url, sParams);
tuple = getTuple(new ExceptionStream(solrStream));
assert(tuple.EOF);
assert(tuple.EXCEPTION);
- //An exception not detected by the parser thrown from the /export handler
- assert(tuple.getException().contains("Invalid function: blah"));
+ assert(tuple.getException().contains("Column 'field_iff' not found in any table"));
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select str_s from collection1 where text='XXXX' group by str_s");
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), blah(field_i), min(field_i), max(field_i), cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s having ((sum(field_i) = 19) AND (min(field_i) = 8))");
solrStream = new SolrStream(jetty.url, sParams);
tuple = getTuple(new ExceptionStream(solrStream));
assert(tuple.EOF);
assert(tuple.EXCEPTION);
- assert(tuple.getException().contains("Group by queries must include atleast one aggregate function."));
-
+ assert(tuple.getException().contains("No match found for function signature blah"));
} finally {
delete();
}
@@ -866,38 +641,37 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
indexr("id", "6", "text", "XXXX XXXX", "str_s", "c", "field_i", "40");
indexr("id", "7", "text", "XXXX XXXX", "str_s", "c", "field_i", "50");
indexr("id", "8", "text", "XXXX XXXX", "str_s", "c", "field_i", "60");
+ indexr("id", "9", "text", "XXXX XXXY", "str_s", "d", "field_i", "70");
commit();
-
- SolrParams sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select str_s, 'count(*)', sum('field_i'), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by 'str_s' order by 'sum(field_i)' asc limit 2");
+
+ SolrParams sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s order by sum(field_i) asc limit 2");
SolrStream solrStream = new SolrStream(jetty.url, sParams);
List<Tuple> tuples = getTuples(solrStream);
//Only two results because of the limit.
assert(tuples.size() == 2);
-
- Tuple tuple = null;
+ Tuple tuple;
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 19); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
tuple = tuples.get(1);
assert(tuple.get("str_s").equals("a"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 27);
- assert(tuple.getDouble("min(field_i)") == 7);
- assert(tuple.getDouble("max(field_i)") == 20);
- assert(tuple.getDouble("avg(field_i)") == 13.5D);
-
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 27); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 7); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 20); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 13.5D); //avg(field_i)
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select str_s as myString, 'count(*)', sum('field_i') as sum, min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by 'str_s' order by sum asc limit 2");
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select str_s as myString, count(*), sum(field_i) as mySum, min(field_i), max(field_i), cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s order by mySum asc limit 2");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -907,23 +681,24 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
assert(tuple.get("myString").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("mySum") == 19);
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
tuple = tuples.get(1);
assert(tuple.get("myString").equals("a"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum") == 27);
- assert(tuple.getDouble("min(field_i)") == 7);
- assert(tuple.getDouble("max(field_i)") == 20);
- assert(tuple.getDouble("avg(field_i)") == 13.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("mySum") == 27);
+ assert(tuple.getDouble("EXPR$3") == 7); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 20); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 13.5D); //avg(field_i)
-
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where (text='XXXX' AND NOT text='XXXX XXX') group by str_s order by str_s desc");
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), "
+ + "cast(avg(1.0 * field_i) as float) from collection1 where (text='XXXX' AND NOT ((text='XXXY') AND (text='XXXY' OR text='XXXY'))) "
+ + "group by str_s order by str_s desc");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -935,31 +710,33 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("c"));
- assert(tuple.getDouble("count(*)") == 4);
- assert(tuple.getDouble("sum(field_i)") == 180);
- assert(tuple.getDouble("min(field_i)") == 30);
- assert(tuple.getDouble("max(field_i)") == 60);
- assert(tuple.getDouble("avg(field_i)") == 45);
+ assert(tuple.getDouble("EXPR$1") == 4); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 180); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 30); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 60); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 45); //avg(field_i)
tuple = tuples.get(1);
assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 19); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
tuple = tuples.get(2);
assert(tuple.get("str_s").equals("a"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 27);
- assert(tuple.getDouble("min(field_i)") == 7);
- assert(tuple.getDouble("max(field_i)") == 20);
- assert(tuple.getDouble("avg(field_i)") == 13.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 27); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 7); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 20); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 13.5D); //avg(field_i)
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select str_s as myString, count(*) as count, sum(field_i) as sum, min(field_i) as min, max(field_i) as max, avg(field_i) as avg from collection1 where (text='XXXX' AND NOT text='XXXX XXX') group by str_s order by str_s desc");
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select str_s as myString, count(*) as myCount, sum(field_i) as mySum, min(field_i) as myMin, "
+ + "max(field_i) as myMax, cast(avg(1.0 * field_i) as float) as myAvg from collection1 "
+ + "where (text='XXXX' AND NOT (text='XXXY')) group by str_s order by str_s desc");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -971,32 +748,31 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
assert(tuple.get("myString").equals("c"));
- assert(tuple.getDouble("count") == 4);
- assert(tuple.getDouble("sum") == 180);
- assert(tuple.getDouble("min") == 30);
- assert(tuple.getDouble("max") == 60);
- assert(tuple.getDouble("avg") == 45);
+ assert(tuple.getDouble("myCount") == 4);
+ assert(tuple.getDouble("mySum") == 180);
+ assert(tuple.getDouble("myMin") == 30);
+ assert(tuple.getDouble("myMax") == 60);
+ assert(tuple.getDouble("myAvg") == 45);
tuple = tuples.get(1);
assert(tuple.get("myString").equals("b"));
- assert(tuple.getDouble("count") == 2);
- assert(tuple.getDouble("sum") == 19);
- assert(tuple.getDouble("min") == 8);
- assert(tuple.getDouble("max") == 11);
- assert(tuple.getDouble("avg") == 9.5D);
+ assert(tuple.getDouble("myCount") == 2);
+ assert(tuple.getDouble("mySum") == 19);
+ assert(tuple.getDouble("myMin") == 8);
+ assert(tuple.getDouble("myMax") == 11);
+ assert(tuple.getDouble("myAvg") == 9.5D);
tuple = tuples.get(2);
assert(tuple.get("myString").equals("a"));
- assert(tuple.getDouble("count") == 2);
- assert(tuple.getDouble("sum") == 27);
- assert(tuple.getDouble("min") == 7);
- assert(tuple.getDouble("max") == 20);
- assert(tuple.getDouble("avg") == 13.5D);
-
+ assert(tuple.getDouble("myCount") == 2);
+ assert(tuple.getDouble("mySum") == 27);
+ assert(tuple.getDouble("myMin") == 7);
+ assert(tuple.getDouble("myMax") == 20);
+ assert(tuple.getDouble("myAvg") == 13.5D);
-
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s having sum(field_i) = 19");
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), cast(avg(1.0 * field_i) as float) " +
+ "from collection1 where text='XXXX' group by str_s having sum(field_i) = 19");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -1005,65 +781,63 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 19); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s having ((sum(field_i) = 19) AND (min(field_i) = 8))");
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), cast(avg(1.0 * field_i) as float) " +
+ "from collection1 where text='XXXX' group by str_s having ((sum(field_i) = 19) AND (min(field_i) = 8))");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
- //Only two results because of the limit.
assert(tuples.size() == 1);
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 19); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select str_s as myString, count(*), sum(field_i) as sum, min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by myString having ((sum = 19) AND (min(field_i) = 8))");
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), sum(field_i) as mySum, min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s " +
+ "having ((sum(field_i) = 19) AND (min(field_i) = 8))");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
- //Only two results because of the limit.
assert(tuples.size() == 1);
tuple = tuples.get(0);
- assert(tuple.get("myString").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
-
+ assert(tuple.get("str_s").equals("b"));
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("mySum") == 19);
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s having ((sum(field_i) = 19) AND (min(field_i) = 100))");
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s " +
+ "having ((sum(field_i) = 19) AND (min(field_i) = 100))");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
assert(tuples.size() == 0);
-
-
} finally {
delete();
}
}
-
private void testSelectDistinctFacets() throws Exception {
try {
-
CloudJettyRunner jetty = this.cloudJettys.get(0);
del("*:*");
@@ -1079,15 +853,19 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
indexr("id", "7", "text", "XXXX XXXX", "str_s", "c", "field_i", "50");
indexr("id", "8", "text", "XXXX XXXX", "str_s", "c", "field_i", "60");
commit();
+
SolrParams sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "facet",
- "stmt", "select distinct 'str_s', 'field_i' from collection1 order by 'str_s' asc, 'field_i' asc");
+ "stmt", "select distinct str_s, field_i from collection1 order by str_s asc, field_i asc");
+
+ System.out.println("######## selectDistinctFacets #######");
SolrStream solrStream = new SolrStream(jetty.url, sParams);
List<Tuple> tuples = getTuples(solrStream);
+ //assert(false);
assert(tuples.size() == 6);
- Tuple tuple = null;
+ Tuple tuple;
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("a"));
@@ -1204,7 +982,6 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
// Test without a sort. Sort should be asc by default.
-
sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "facet",
"stmt", "select distinct str_s, field_i from collection1");
@@ -1218,30 +995,35 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
assert(tuple.getLong("field_i") == 1);
tuple = tuples.get(1);
+
+
assert(tuple.get("str_s").equals("a"));
assert(tuple.getLong("field_i") == 20);
tuple = tuples.get(2);
+
+
assert(tuple.get("str_s").equals("b"));
assert(tuple.getLong("field_i") == 2);
tuple = tuples.get(3);
+
assert(tuple.get("str_s").equals("c"));
assert(tuple.getLong("field_i") == 30);
tuple = tuples.get(4);
+
assert(tuple.get("str_s").equals("c"));
assert(tuple.getLong("field_i") == 50);
tuple = tuples.get(5);
+
assert(tuple.get("str_s").equals("c"));
assert(tuple.getLong("field_i") == 60);
-
// Test with a predicate.
-
sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "facet",
- "stmt", "select distinct str_s, field_i from collection1 where str_s = 'a'");
+ "stmt", "select distinct str_s, field_i from collection1 where str_s = 'a'");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -1255,14 +1037,11 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(1);
assert(tuple.get("str_s").equals("a"));
assert(tuple.getLong("field_i") == 20);
-
-
} finally {
delete();
}
}
-
private void testSelectDistinct() throws Exception {
try {
@@ -1281,18 +1060,18 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
indexr("id", "7", "text", "XXXX XXXX", "str_s", "c", "field_i", "50");
indexr("id", "8", "text", "XXXX XXXX", "str_s", "c", "field_i", "60");
commit();
-
- SolrParams sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select distinct 'str_s', 'field_i' from collection1 order by 'str_s' asc, 'field_i' asc");
- SolrStream solrStream = new SolrStream(jetty.url, sParams);
- List<Tuple> tuples = getTuples(solrStream);
+ SolrParams sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select distinct str_s, field_i from collection1 order by str_s asc, field_i asc");
- assert(tuples.size() == 6);
+ System.out.println("##################### testSelectDistinct()");
- Tuple tuple = null;
+ TupleStream solrStream = new SolrStream(jetty.url, sParams);
+ List<Tuple> tuples = getTuples(solrStream);
- tuple = tuples.get(0);
+
+ assert(tuples.size() == 6);
+ Tuple tuple = tuples.get(0);
assert(tuple.get("str_s").equals("a"));
assert(tuple.getLong("field_i") == 1);
@@ -1318,7 +1097,7 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
//reverse the sort
- sParams = mapParams(CommonParams.QT, "/sql",
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
"stmt", "select distinct str_s, field_i from collection1 order by str_s desc, field_i desc");
solrStream = new SolrStream(jetty.url, sParams);
@@ -1353,7 +1132,7 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
assert(tuple.getLong("field_i") == 1);
- sParams = mapParams(CommonParams.QT, "/sql",
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
"stmt", "select distinct str_s as myString, field_i from collection1 order by myString desc, field_i desc");
solrStream = new SolrStream(jetty.url, sParams);
@@ -1389,7 +1168,7 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
//test with limit
- sParams = mapParams(CommonParams.QT, "/sql",
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
"stmt", "select distinct str_s, field_i from collection1 order by str_s desc, field_i desc limit 2");
solrStream = new SolrStream(jetty.url, sParams);
@@ -1407,9 +1186,8 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
// Test without a sort. Sort should be asc by default.
-
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select distinct str_s, field_i from collection1");
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select distinct str_s, field_i from collection1");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -1441,9 +1219,8 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
assert(tuple.getLong("field_i") == 60);
// Test with a predicate.
-
- sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select distinct str_s, field_i from collection1 where str_s = 'a'");
+ sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "map_reduce",
+ "stmt", "select distinct str_s, field_i from collection1 where str_s = 'a'");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -1457,8 +1234,6 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(1);
assert(tuple.get("str_s").equals("a"));
assert(tuple.getLong("field_i") == 20);
-
-
} finally {
delete();
}
@@ -1466,7 +1241,6 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
private void testParallelSelectDistinct() throws Exception {
try {
-
CloudJettyRunner jetty = this.cloudJettys.get(0);
del("*:*");
@@ -1482,7 +1256,7 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
indexr("id", "7", "text", "XXXX XXXX", "str_s", "c", "field_i", "50");
indexr("id", "8", "text", "XXXX XXXX", "str_s", "c", "field_i", "60");
commit();
- SolrParams sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2",
+ SolrParams sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2", "aggregationMode", "map_reduce",
"stmt", "select distinct str_s, field_i from collection1 order by str_s asc, field_i asc");
SolrStream solrStream = new SolrStream(jetty.url, sParams);
@@ -1490,7 +1264,7 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
assert(tuples.size() == 6);
- Tuple tuple = null;
+ Tuple tuple;
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("a"));
@@ -1518,7 +1292,7 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
//reverse the sort
- sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2",
+ sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2", "aggregationMode", "map_reduce",
"stmt", "select distinct str_s, field_i from collection1 order by str_s desc, field_i desc");
solrStream = new SolrStream(jetty.url, sParams);
@@ -1534,7 +1308,6 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
assert(tuple.get("str_s").equals("c"));
assert(tuple.getLong("field_i") == 50);
-
tuple = tuples.get(2);
assert(tuple.get("str_s").equals("c"));
assert(tuple.getLong("field_i") == 30);
@@ -1543,7 +1316,6 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
assert(tuple.get("str_s").equals("b"));
assert(tuple.getLong("field_i") == 2);
-
tuple = tuples.get(4);
assert(tuple.get("str_s").equals("a"));
assert(tuple.getLong("field_i") == 20);
@@ -1554,7 +1326,7 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
//reverse the sort
- sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2",
+ sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2", "aggregationMode", "map_reduce",
"stmt", "select distinct str_s as myString, field_i from collection1 order by myString desc, field_i desc");
solrStream = new SolrStream(jetty.url, sParams);
@@ -1590,7 +1362,7 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
//test with limit
- sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2",
+ sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2", "aggregationMode", "map_reduce",
"stmt", "select distinct str_s, field_i from collection1 order by str_s desc, field_i desc limit 2");
solrStream = new SolrStream(jetty.url, sParams);
@@ -1608,9 +1380,8 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
// Test without a sort. Sort should be asc by default.
-
- sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2",
- "stmt", "select distinct str_s, field_i from collection1");
+ sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2", "aggregationMode", "map_reduce",
+ "stmt", "select distinct str_s, field_i from collection1");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -1642,9 +1413,8 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
assert(tuple.getLong("field_i") == 60);
// Test with a predicate.
-
- sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2",
- "stmt", "select distinct str_s, field_i from collection1 where str_s = 'a'");
+ sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2", "aggregationMode", "map_reduce",
+ "stmt", "select distinct str_s, field_i from collection1 where str_s = 'a'");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -1664,11 +1434,8 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
}
}
-
-
private void testBasicGroupingFacets() throws Exception {
try {
-
CloudJettyRunner jetty = this.cloudJettys.get(0);
del("*:*");
@@ -1683,9 +1450,13 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
indexr("id", "6", "text", "XXXX XXXX", "str_s", "c", "field_i", "40");
indexr("id", "7", "text", "XXXX XXXX", "str_s", "c", "field_i", "50");
indexr("id", "8", "text", "XXXX XXXX", "str_s", "c", "field_i", "60");
+ indexr("id", "9", "text", "XXXX XXXY", "str_s", "d", "field_i", "70");
commit();
+
SolrParams sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "facet",
- "stmt", "select 'str_s', 'count(*)', sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by 'str_s' order by 'sum(field_i)' asc limit 2");
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s " +
+ "order by sum(field_i) asc limit 2");
SolrStream solrStream = new SolrStream(jetty.url, sParams);
List<Tuple> tuples = getTuples(solrStream);
@@ -1693,26 +1464,28 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
//Only two results because of the limit.
assert(tuples.size() == 2);
- Tuple tuple = null;
+ Tuple tuple;
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 19); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
tuple = tuples.get(1);
assert(tuple.get("str_s").equals("a"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 27);
- assert(tuple.getDouble("min(field_i)") == 7);
- assert(tuple.getDouble("max(field_i)") == 20);
- assert(tuple.getDouble("avg(field_i)") == 13.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 27); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 7); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 20); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 13.5D); //avg(field_i)
sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "facet",
- "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where (text='XXXX' AND NOT text='XXXX XXX') group by str_s order by str_s desc");
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), "
+ + "cast(avg(1.0 * field_i) as float) from collection1 where (text='XXXX' AND NOT (text='XXXY')) "
+ + "group by str_s order by str_s desc");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -1724,30 +1497,32 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("c"));
- assert(tuple.getDouble("count(*)") == 4);
- assert(tuple.getDouble("sum(field_i)") == 180);
- assert(tuple.getDouble("min(field_i)") == 30);
- assert(tuple.getDouble("max(field_i)") == 60);
- assert(tuple.getDouble("avg(field_i)") == 45);
+ assert(tuple.getDouble("EXPR$1") == 4); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 180); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 30); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 60); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 45); //avg(field_i)
tuple = tuples.get(1);
assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 19); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
tuple = tuples.get(2);
assert(tuple.get("str_s").equals("a"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 27);
- assert(tuple.getDouble("min(field_i)") == 7);
- assert(tuple.getDouble("max(field_i)") == 20);
- assert(tuple.getDouble("avg(field_i)") == 13.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 27); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 7); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 20); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 13.5D); //avg(field_i)
sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "facet",
- "stmt", "select str_s as myString, count(*), sum(field_i) as sum, min(field_i), max(field_i), avg(field_i) from collection1 where (text='XXXX' AND NOT text='XXXX XXX') group by myString order by myString desc");
+ "stmt", "select str_s as myString, count(*), sum(field_i) as mySum, min(field_i), max(field_i), "
+ + "cast(avg(1.0 * field_i) as float) from collection1 where (text='XXXX' AND NOT (text='XXXY')) "
+ + "group by str_s order by myString desc");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -1759,33 +1534,31 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
assert(tuple.get("myString").equals("c"));
- assert(tuple.getDouble("count(*)") == 4);
- assert(tuple.getDouble("sum") == 180);
- assert(tuple.getDouble("min(field_i)") == 30);
- assert(tuple.getDouble("max(field_i)") == 60);
- assert(tuple.getDouble("avg(field_i)") == 45);
+ assert(tuple.getDouble("EXPR$1") == 4); //count(*)
+ assert(tuple.getDouble("mySum") == 180);
+ assert(tuple.getDouble("EXPR$3") == 30); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 60); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 45); //avg(field_i)
tuple = tuples.get(1);
assert(tuple.get("myString").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("mySum") == 19);
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
tuple = tuples.get(2);
assert(tuple.get("myString").equals("a"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum") == 27);
- assert(tuple.getDouble("min(field_i)") == 7);
- assert(tuple.getDouble("max(field_i)") == 20);
- assert(tuple.getDouble("avg(field_i)") == 13.5D);
-
-
-
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("mySum") == 27);
+ assert(tuple.getDouble("EXPR$3") == 7); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 20); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 13.5D); //avg(field_i)
sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "facet",
- "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s having 'sum(field_i)' = 19");
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s having sum(field_i) = 19");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -1794,68 +1567,64 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 19); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "facet",
- "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s having (('sum(field_i)' = 19) AND (min(field_i) = 8))");
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s " +
+ "having ((sum(field_i) = 19) AND (min(field_i) = 8))");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
- //Only two results because of the limit.
assert(tuples.size() == 1);
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
-
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 19); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "facet",
- "stmt", "select str_s myString, count(*), sum(field_i) as sum, min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by myString having ((sum = 19) AND (min(field_i) = 8))");
+ "stmt", "select str_s, count(*), sum(field_i) as mySum, min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s " +
+ "having ((sum(field_i) = 19) AND (min(field_i) = 8))");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
- //Only two results because of the limit.
assert(tuples.size() == 1);
tuple = tuples.get(0);
- assert(tuple.get("myString").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.get("str_s").equals("b"));
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("mySum") == 19);
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "facet",
- "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s having ((sum(field_i) = 19) AND (min(field_i) = 100))");
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s " +
+ "having ((sum(field_i) = 19) AND (min(field_i) = 100))");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
assert(tuples.size() == 0);
-
-
} finally {
delete();
}
}
-
-
-
-
private void testParallelBasicGrouping() throws Exception {
try {
-
CloudJettyRunner jetty = this.cloudJettys.get(0);
del("*:*");
@@ -1871,8 +1640,11 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
indexr("id", "7", "text", "XXXX XXXX", "str_s", "c", "field_i", "50");
indexr("id", "8", "text", "XXXX XXXX", "str_s", "c", "field_i", "60");
commit();
- SolrParams sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2",
- "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s order by sum(field_i) asc limit 2");
+
+ SolrParams sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s " +
+ "order by sum(field_i) asc limit 2");
SolrStream solrStream = new SolrStream(jetty.url, sParams);
List<Tuple> tuples = getTuples(solrStream);
@@ -1880,26 +1652,28 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
//Only two results because of the limit.
assert(tuples.size() == 2);
- Tuple tuple = null;
+ Tuple tuple;
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 19); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
tuple = tuples.get(1);
assert(tuple.get("str_s").equals("a"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 27);
- assert(tuple.getDouble("min(field_i)") == 7);
- assert(tuple.getDouble("max(field_i)") == 20);
- assert(tuple.getDouble("avg(field_i)") == 13.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 27); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 7); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 20); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 13.5D); //avg(field_i)
- sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2",
- "stmt", "select str_s, count(*), sum(field_i) as sum, min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s order by sum asc limit 2");
+
+ sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), sum(field_i) as mySum, min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s order by mySum asc limit 2");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -1909,23 +1683,24 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("mySum") == 19);
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
tuple = tuples.get(1);
assert(tuple.get("str_s").equals("a"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum") == 27);
- assert(tuple.getDouble("min(field_i)") == 7);
- assert(tuple.getDouble("max(field_i)") == 20);
- assert(tuple.getDouble("avg(field_i)") == 13.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("mySum") == 27);
+ assert(tuple.getDouble("EXPR$3") == 7); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 20); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 13.5D); //avg(field_i)
- sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2",
- "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s order by str_s desc");
+ sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s order by str_s desc");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -1937,31 +1712,32 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("c"));
- assert(tuple.getDouble("count(*)") == 4);
- assert(tuple.getDouble("sum(field_i)") == 180);
- assert(tuple.getDouble("min(field_i)") == 30);
- assert(tuple.getDouble("max(field_i)") == 60);
- assert(tuple.getDouble("avg(field_i)") == 45);
+ assert(tuple.getDouble("EXPR$1") == 4); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 180); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 30); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 60); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 45); //avg(field_i)
tuple = tuples.get(1);
assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 19); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
tuple = tuples.get(2);
assert(tuple.get("str_s").equals("a"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 27);
- assert(tuple.getDouble("min(field_i)") == 7);
- assert(tuple.getDouble("max(field_i)") == 20);
- assert(tuple.getDouble("avg(field_i)") == 13.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 27); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 7); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 20); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 13.5D); //avg(field_i)
- sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2",
- "stmt", "select str_s as myString, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by myString order by myString desc");
+ sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2", "aggregationMode", "map_reduce",
+ "stmt", "select str_s as myString, count(*), sum(field_i), min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s order by myString desc");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
@@ -1973,79 +1749,73 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
assert(tuple.get("myString").equals("c"));
- assert(tuple.getDouble("count(*)") == 4);
- assert(tuple.getDouble("sum(field_i)") == 180);
- assert(tuple.getDouble("min(field_i)") == 30);
- assert(tuple.getDouble("max(field_i)") == 60);
- assert(tuple.getDouble("avg(field_i)") == 45);
+ assert(tuple.getDouble("EXPR$1") == 4); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 180); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 30); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 60); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 45); //avg(field_i)
tuple = tuples.get(1);
assert(tuple.get("myString").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 19); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
tuple = tuples.get(2);
assert(tuple.get("myString").equals("a"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 27);
- assert(tuple.getDouble("min(field_i)") == 7);
- assert(tuple.getDouble("max(field_i)") == 20);
- assert(tuple.getDouble("avg(field_i)") == 13.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 27); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 7); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 20); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 13.5D); //avg(field_i)
- sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2",
- "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s having sum(field_i) = 19");
+ sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s having sum(field_i) = 19");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
- //Only two results because of the limit.
assert(tuples.size() == 1);
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 19); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
- tuple = tuples.get(0);
- assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
-
- sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2",
- "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s having ((sum(field_i) = 19) AND (min(field_i) = 8))");
+ sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s " +
+ "having ((sum(field_i) = 19) AND (min(field_i) = 8))");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
- //Only two results because of the limit.
assert(tuples.size() == 1);
tuple = tuples.get(0);
assert(tuple.get("str_s").equals("b"));
- assert(tuple.getDouble("count(*)") == 2);
- assert(tuple.getDouble("sum(field_i)") == 19);
- assert(tuple.getDouble("min(field_i)") == 8);
- assert(tuple.getDouble("max(field_i)") == 11);
- assert(tuple.getDouble("avg(field_i)") == 9.5D);
+ assert(tuple.getDouble("EXPR$1") == 2); //count(*)
+ assert(tuple.getDouble("EXPR$2") == 19); //sum(field_i)
+ assert(tuple.getDouble("EXPR$3") == 8); //min(field_i)
+ assert(tuple.getDouble("EXPR$4") == 11); //max(field_i)
+ assert(tuple.getDouble("EXPR$5") == 9.5D); //avg(field_i)
- sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2",
- "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), avg(field_i) from collection1 where text='XXXX' group by str_s having ((sum(field_i) = 19) AND (min(field_i) = 100))");
+ sParams = mapParams(CommonParams.QT, "/sql", "numWorkers", "2", "aggregationMode", "map_reduce",
+ "stmt", "select str_s, count(*), sum(field_i), min(field_i), max(field_i), " +
+ "cast(avg(1.0 * field_i) as float) from collection1 where text='XXXX' group by str_s " +
+ "having ((sum(field_i) = 19) AND (min(field_i) = 100))");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
assert(tuples.size() == 0);
-
} finally {
delete();
}
@@ -2053,7 +1823,6 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
private void testAggregatesWithoutGrouping() throws Exception {
-
CloudJettyRunner jetty = this.cloudJettys.get(0);
del("*:*");
@@ -2073,11 +1842,11 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
commit();
- SolrParams sParams = mapParams(CommonParams.QT, "/sql", "stmt", "select count(*), sum(a_i), min(a_i), max(a_i), avg(a_i), sum(a_f), min(a_f), max(a_f), avg(a_f) from collection1");
+ SolrParams sParams = mapParams(CommonParams.QT, "/sql", "stmt", "select count(*), sum(a_i), min(a_i), max(a_i), cast(avg(1.0 * a_i) as float), sum(a_f), " +
+ "min(a_f), max(a_f), avg(a_f) from collection1");
SolrStream solrStream = new SolrStream(jetty.url, sParams);
-
List<Tuple> tuples = getTuples(solrStream);
assert(tuples.size() == 1);
@@ -2086,30 +1855,29 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
Tuple tuple = tuples.get(0);
- Double sumi = tuple.getDouble("sum(a_i)");
- Double sumf = tuple.getDouble("sum(a_f)");
- Double mini = tuple.getDouble("min(a_i)");
- Double minf = tuple.getDouble("min(a_f)");
- Double maxi = tuple.getDouble("max(a_i)");
- Double maxf = tuple.getDouble("max(a_f)");
- Double avgi = tuple.getDouble("avg(a_i)");
- Double avgf = tuple.getDouble("avg(a_f)");
- Double count = tuple.getDouble("count(*)");
-
- assertTrue(sumi.longValue() == 70);
- assertTrue(sumf.doubleValue() == 55.0D);
- assertTrue(mini.doubleValue() == 0.0D);
- assertTrue(minf.doubleValue() == 1.0D);
- assertTrue(maxi.doubleValue() == 14.0D);
- assertTrue(maxf.doubleValue() == 10.0D);
- assertTrue(avgi.doubleValue() == 7.0D);
- assertTrue(avgf.doubleValue() == 5.5D);
- assertTrue(count.doubleValue() == 10);
-
-
+ Double count = tuple.getDouble("EXPR$0"); //count(*)
+ Double sumi = tuple.getDouble("EXPR$1"); //sum(a_i)
+ Double mini = tuple.getDouble("EXPR$2"); //min(a_i)
+ Double maxi = tuple.getDouble("EXPR$3"); //max(a_i)
+ Double avgi = tuple.getDouble("EXPR$4"); //avg(a_i)
+ Double sumf = tuple.getDouble("EXPR$5"); //sum(a_f)
+ Double minf = tuple.getDouble("EXPR$6"); //min(a_f)
+ Double maxf = tuple.getDouble("EXPR$7"); //max(a_f)
+ Double avgf = tuple.getDouble("EXPR$8"); //avg(a_f)
+
+ assertTrue(count == 10);
+ assertTrue(sumi == 70);
+ assertTrue(mini == 0.0D);
+ assertTrue(maxi == 14.0D);
+ assertTrue(avgi == 7.0D);
+ assertTrue(sumf == 55.0D);
+ assertTrue(minf == 1.0D);
+ assertTrue(maxf == 10.0D);
+ assertTrue(avgf == 5.5D);
sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select count(*) as count, sum(a_i) as sum, min(a_i) as min, max(a_i) as max, avg(a_i) as avg, sum(a_f), min(a_f), max(a_f), avg(a_f) from collection1");
+ "stmt", "select count(*) as myCount, sum(a_i) as mySum, min(a_i) as myMin, max(a_i) as myMax, " +
+ "cast(avg(1.0 * a_i) as float) as myAvg, sum(a_f), min(a_f), max(a_f), avg(a_f) from collection1");
solrStream = new SolrStream(jetty.url, sParams);
@@ -2121,33 +1889,30 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
- sumi = tuple.getDouble("sum");
- sumf = tuple.getDouble("sum(a_f)");
- mini = tuple.getDouble("min");
- minf = tuple.getDouble("min(a_f)");
- maxi = tuple.getDouble("max");
- maxf = tuple.getDouble("max(a_f)");
- avgi = tuple.getDouble("avg");
- avgf = tuple.getDouble("avg(a_f)");
- count = tuple.getDouble("count");
-
- assertTrue(sumi.longValue() == 70);
- assertTrue(sumf.doubleValue() == 55.0D);
- assertTrue(mini.doubleValue() == 0.0D);
- assertTrue(minf.doubleValue() == 1.0D);
- assertTrue(maxi.doubleValue() == 14.0D);
- assertTrue(maxf.doubleValue() == 10.0D);
- assertTrue(avgi.doubleValue() == 7.0D);
- assertTrue(avgf.doubleValue() == 5.5D);
- assertTrue(count.doubleValue() == 10);
-
-
-
+ count = tuple.getDouble("myCount");
+ sumi = tuple.getDouble("mySum");
+ mini = tuple.getDouble("myMin");
+ maxi = tuple.getDouble("myMax");
+ avgi = tuple.getDouble("myAvg");
+ sumf = tuple.getDouble("EXPR$5"); //sum(a_f)
+ minf = tuple.getDouble("EXPR$6"); //min(a_f)
+ maxf = tuple.getDouble("EXPR$7"); //max(a_f)
+ avgf = tuple.getDouble("EXPR$8"); //avg(a_f)
+
+ assertTrue(count == 10);
+ assertTrue(mini == 0.0D);
+ assertTrue(maxi == 14.0D);
+ assertTrue(sumi == 70);
+ assertTrue(avgi == 7.0D);
+ assertTrue(sumf == 55.0D);
+ assertTrue(minf == 1.0D);
+ assertTrue(maxf == 10.0D);
+ assertTrue(avgf == 5.5D);
// Test where clause hits
-
sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select count(*), sum(a_i), min(a_i), max(a_i), avg(a_i), sum(a_f), min(a_f), max(a_f), avg(a_f) from collection1 where id = 2");
+ "stmt", "select count(*), sum(a_i), min(a_i), max(a_i), cast(avg(1.0 * a_i) as float), sum(a_f), " +
+ "min(a_f), max(a_f), avg(a_f) from collection1 where id = 2");
solrStream = new SolrStream(jetty.url, sParams);
@@ -2157,31 +1922,31 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
- sumi = tuple.getDouble("sum(a_i)");
- sumf = tuple.getDouble("sum(a_f)");
- mini = tuple.getDouble("min(a_i)");
- minf = tuple.getDouble("min(a_f)");
- maxi = tuple.getDouble("max(a_i)");
- maxf = tuple.getDouble("max(a_f)");
- avgi = tuple.getDouble("avg(a_i)");
- avgf = tuple.getDouble("avg(a_f)");
- count = tuple.getDouble("count(*)");
-
- assertTrue(sumi.longValue() == 2);
- assertTrue(sumf.doubleValue() == 2.0D);
+ count = tuple.getDouble("EXPR$0"); //count(*)
+ sumi = tuple.getDouble("EXPR$1"); //sum(a_i)
+ mini = tuple.getDouble("EXPR$2"); //min(a_i)
+ maxi = tuple.getDouble("EXPR$3"); //max(a_i)
+ avgi = tuple.getDouble("EXPR$4"); //avg(a_i)
+ sumf = tuple.getDouble("EXPR$5"); //sum(a_f)
+ minf = tuple.getDouble("EXPR$6"); //min(a_f)
+ maxf = tuple.getDouble("EXPR$7"); //max(a_f)
+ avgf = tuple.getDouble("EXPR$8"); //avg(a_f)
+
+ assertTrue(count == 1);
+ assertTrue(sumi == 2);
assertTrue(mini == 2);
- assertTrue(minf == 2);
assertTrue(maxi == 2);
+ assertTrue(avgi == 2.0D);
+ assertTrue(sumf == 2.0D);
+ assertTrue(minf == 2);
assertTrue(maxf == 2);
- assertTrue(avgi.doubleValue() == 2.0D);
- assertTrue(avgf.doubleValue() == 2.0);
- assertTrue(count.doubleValue() == 1);
+ assertTrue(avgf == 2.0);
// Test zero hits
-
sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select count(*), sum(a_i), min(a_i), max(a_i), avg(a_i), sum(a_f), min(a_f), max(a_f), avg(a_f) from collection1 where a_s = 'blah'");
+ "stmt", "select count(*), sum(a_i), min(a_i), max(a_i), cast(avg(1.0 * a_i) as float), sum(a_f), " +
+ "min(a_f), max(a_f), avg(a_f) from collection1 where a_s = 'blah'");
solrStream = new SolrStream(jetty.url, sParams);
@@ -2191,36 +1956,32 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
tuple = tuples.get(0);
- sumi = tuple.getDouble("sum(a_i)");
- sumf = tuple.getDouble("sum(a_f)");
- mini = tuple.getDouble("min(a_i)");
- minf = tuple.getDouble("min(a_f)");
- maxi = tuple.getDouble("max(a_i)");
- maxf = tuple.getDouble("max(a_f)");
- avgi = tuple.getDouble("avg(a_i)");
- avgf = tuple.getDouble("avg(a_f)");
- count = tuple.getDouble("count(*)");
-
- assertTrue(sumi.longValue() == 0);
- assertTrue(sumf.doubleValue() == 0.0D);
+ count = tuple.getDouble("EXPR$0"); //count(*)
+ sumi = tuple.getDouble("EXPR$1"); //sum(a_i)
+ mini = tuple.getDouble("EXPR$2"); //min(a_i)
+ maxi = tuple.getDouble("EXPR$3"); //max(a_i)
+ avgi = tuple.getDouble("EXPR$4"); //avg(a_i)
+ sumf = tuple.getDouble("EXPR$5"); //sum(a_f)
+ minf = tuple.getDouble("EXPR$6"); //min(a_f)
+ maxf = tuple.getDouble("EXPR$7"); //max(a_f)
+ avgf = tuple.getDouble("EXPR$8"); //avg(a_f)
+
+ assertTrue(count == 0);
+ assertTrue(sumi == null);
assertTrue(mini == null);
- assertTrue(minf == null);
assertTrue(maxi == null);
+ assertTrue(avgi == null);
+ assertTrue(sumf == null);
+ assertTrue(minf == null);
assertTrue(maxf == null);
- assertTrue(Double.isNaN(avgi));
- assertTrue(Double.isNaN(avgf));
- assertTrue(count.doubleValue() == 0);
+ assertTrue(avgf == null);
del("*:*");
commit();
}
-
-
-
private void testTimeSeriesGrouping() throws Exception {
try {
-
CloudJettyRunner jetty = this.cloudJettys.get(0);
del("*:*");
@@ -2237,97 +1998,93 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
indexr("id", "8", "year_i", "2014", "month_i", "4", "day_i", "2", "item_i", "1");
commit();
+
SolrParams sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select year_i, sum(item_i) from collection1 group by year_i order by year_i desc");
+ "stmt", "select year_i, sum(item_i) from collection1 group by year_i order by year_i desc");
SolrStream solrStream = new SolrStream(jetty.url, sParams);
List<Tuple> tuples = getTuples(solrStream);
- //Only two results because of the limit.
assert(tuples.size() == 2);
- Tuple tuple = null;
+ Tuple tuple;
tuple = tuples.get(0);
assert(tuple.getLong("year_i") == 2015);
- assert(tuple.getDouble("sum(item_i)") == 66);
+ assert(tuple.getDouble("EXPR$1") == 66); //sum(item_i)
tuple = tuples.get(1);
assert(tuple.getLong("year_i") == 2014);
- assert(tuple.getDouble("sum(item_i)") == 7);
+ assert(tuple.getDouble("EXPR$1") == 7); //sum(item_i)
sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select year_i, month_i, sum(item_i) from collection1 group by year_i, month_i order by year_i desc, month_i desc");
+ "stmt", "select year_i, month_i, sum(item_i) from collection1 group by year_i, month_i " +
+ "order by year_i desc, month_i desc");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
- //Only two results because of the limit.
assert(tuples.size() == 3);
- tuple = null;
-
tuple = tuples.get(0);
assert(tuple.getLong("year_i") == 2015);
assert(tuple.getLong("month_i") == 11);
- assert(tuple.getDouble("sum(item_i)") == 57);
+ assert(tuple.getDouble("EXPR$2") == 57); //sum(item_i)
tuple = tuples.get(1);
assert(tuple.getLong("year_i") == 2015);
assert(tuple.getLong("month_i") == 10);
- assert(tuple.getDouble("sum(item_i)") == 9);
+ assert(tuple.getDouble("EXPR$2") == 9); //sum(item_i)
tuple = tuples.get(2);
assert(tuple.getLong("year_i") == 2014);
assert(tuple.getLong("month_i") == 4);
- assert(tuple.getDouble("sum(item_i)") == 7);
+ assert(tuple.getDouble("EXPR$2") == 7); //sum(item_i)
sParams = mapParams(CommonParams.QT, "/sql",
- "stmt", "select year_i, month_i, day_i, sum(item_i) from collection1 group by year_i, month_i, day_i order by year_i desc, month_i desc, day_i desc");
+ "stmt", "select year_i, month_i, day_i, sum(item_i) from collection1 group by year_i, month_i, day_i " +
+ "order by year_i desc, month_i desc, day_i desc");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
- //Only two results because of the limit.
assert(tuples.size() == 6);
- tuple = null;
-
tuple = tuples.get(0);
assert(tuple.getLong("year_i") == 2015);
assert(tuple.getLong("month_i") == 11);
assert(tuple.getLong("day_i") == 8);
- assert(tuple.getDouble("sum(item_i)") == 42);
+ assert(tuple.getDouble("EXPR$3") == 42); //sum(item_i)
tuple = tuples.get(1);
assert(tuple.getLong("year_i") == 2015);
assert(tuple.getLong("month_i") == 11);
assert(tuple.getLong("day_i") == 7);
- assert(tuple.getDouble("sum(item_i)") == 15);
+ assert(tuple.getDouble("EXPR$3") == 15); //sum(item_i)
tuple = tuples.get(2);
assert(tuple.getLong("year_i") == 2015);
assert(tuple.getLong("month_i") == 10);
assert(tuple.getLong("day_i") == 3);
- assert(tuple.getDouble("sum(item_i)") == 5);
+ assert(tuple.getDouble("EXPR$3") == 5); //sum(item_i)
tuple = tuples.get(3);
assert(tuple.getLong("year_i") == 2015);
assert(tuple.getLong("month_i") == 10);
assert(tuple.getLong("day_i") == 1);
- assert(tuple.getDouble("sum(item_i)") == 4);
+ assert(tuple.getDouble("EXPR$3") == 4); //sum(item_i)
tuple = tuples.get(4);
assert(tuple.getLong("year_i") == 2014);
assert(tuple.getLong("month_i") == 4);
assert(tuple.getLong("day_i") == 4);
- assert(tuple.getDouble("sum(item_i)") == 6);
+ assert(tuple.getDouble("EXPR$3") == 6); //sum(item_i)
tuple = tuples.get(5);
assert(tuple.getLong("year_i") == 2014);
assert(tuple.getLong("month_i") == 4);
assert(tuple.getLong("day_i") == 2);
- assert(tuple.getDouble("sum(item_i)") == 1);
+ assert(tuple.getDouble("EXPR$3") == 1); //sum(item_i)
} finally {
delete();
@@ -2360,89 +2117,88 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
SolrStream solrStream = new SolrStream(jetty.url, sParams);
List<Tuple> tuples = getTuples(solrStream);
- //Only two results because of the limit.
assert(tuples.size() == 2);
- Tuple tuple = null;
+ Tuple tuple;
tuple = tuples.get(0);
assert(tuple.getLong("year_i") == 2015);
- assert(tuple.getDouble("sum(item_i)") == 66);
+ assert(tuple.getDouble("EXPR$1") == 66); //sum(item_i)
tuple = tuples.get(1);
assert(tuple.getLong("year_i") == 2014);
- assert(tuple.getDouble("sum(item_i)") == 7);
+ assert(tuple.getDouble("EXPR$1") == 7); //sum(item_i)
sParams = mapParams(CommonParams.QT, "/sql", "aggregationMode", "facet",
- "stmt", "select year_i, month_i, sum(item_i) from collection1 group by year_i, month_i order by year_i desc, month_i desc");
+ "stmt", "select year_i, month_i, sum(item_i) from collection1 group by year_i, month_i " +
+ "order by year_i desc, month_i desc");
solrStream = new SolrStream(jetty.url, sParams);
tuples = getTuples(solrStream);
- //Only two results because of the limit.
assert(tuples.size() == 3);
tuple = tuples.get(0);
assert(tuple.getLong("year_i") == 2015);
assert(tuple.getLong("month_i") == 11);
-
<TRUNCATED>
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/3370dbed/solr/licenses/avatica-core-1.9.0.jar.sha1
----------------------------------------------------------------------
diff --git a/solr/licenses/avatica-core-1.9.0.jar.sha1 b/solr/licenses/avatica-core-1.9.0.jar.sha1
new file mode 100644
index 0000000..b44a615
--- /dev/null
+++ b/solr/licenses/avatica-core-1.9.0.jar.sha1
@@ -0,0 +1 @@
+c16b346eef02495f2f4b429fe04c33e526ec0229