You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2015/10/15 12:25:42 UTC
svn commit: r1708778 [7/8] - in /lucene/dev/branches/lucene6825: ./ lucene/
lucene/analysis/ lucene/analysis/common/
lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/
lucene/analysis/common/src/test/org/apache/lucene/analysis/core/ l...
Modified: lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/fst/FSTLookupFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/fst/FSTLookupFactory.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/fst/FSTLookupFactory.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/fst/FSTLookupFactory.java Thu Oct 15 10:25:39 2015
@@ -60,7 +60,7 @@ public class FSTLookupFactory extends Lo
? Boolean.valueOf(params.get(EXACT_MATCH_FIRST).toString())
: true;
- return new FSTCompletionLookup(buckets, exactMatchFirst);
+ return new FSTCompletionLookup(getTempDir(), "suggester", buckets, exactMatchFirst);
}
@Override
Modified: lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/fst/FuzzyLookupFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/fst/FuzzyLookupFactory.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/fst/FuzzyLookupFactory.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/fst/FuzzyLookupFactory.java Thu Oct 15 10:25:39 2015
@@ -134,7 +134,7 @@ public class FuzzyLookupFactory extends
? Boolean.valueOf(params.get(UNICODE_AWARE).toString())
: FuzzySuggester.DEFAULT_UNICODE_AWARE;
- return new FuzzySuggester(indexAnalyzer, queryAnalyzer, options, maxSurfaceFormsPerAnalyzedForm,
+ return new FuzzySuggester(getTempDir(), "suggester", indexAnalyzer, queryAnalyzer, options, maxSurfaceFormsPerAnalyzedForm,
maxGraphExpansions, preservePositionIncrements, maxEdits, transpositions, nonFuzzyPrefix,
minFuzzyLength, unicodeAware);
}
Modified: lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/fst/WFSTLookupFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/fst/WFSTLookupFactory.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/fst/WFSTLookupFactory.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/fst/WFSTLookupFactory.java Thu Oct 15 10:25:39 2015
@@ -17,8 +17,6 @@ package org.apache.solr.spelling.suggest
* limitations under the License.
*/
-import java.io.File;
-
import org.apache.lucene.search.suggest.Lookup;
import org.apache.lucene.search.suggest.fst.*;
import org.apache.solr.common.util.NamedList;
@@ -48,7 +46,7 @@ public class WFSTLookupFactory extends L
? Boolean.valueOf(params.get(EXACT_MATCH_FIRST).toString())
: true;
- return new WFSTCompletionLookup(exactMatchFirst);
+ return new WFSTCompletionLookup(getTempDir(), "suggester", exactMatchFirst);
}
@Override
Modified: lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/tst/TSTLookupFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/tst/TSTLookupFactory.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/tst/TSTLookupFactory.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/spelling/suggest/tst/TSTLookupFactory.java Thu Oct 15 10:25:39 2015
@@ -31,7 +31,7 @@ public class TSTLookupFactory extends Lo
@Override
public Lookup create(NamedList params, SolrCore core) {
- return new TSTLookup();
+ return new TSTLookup(getTempDir(), "suggester");
}
@Override
Modified: lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/blockcache/CachedIndexOutput.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/blockcache/CachedIndexOutput.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/blockcache/CachedIndexOutput.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/blockcache/CachedIndexOutput.java Thu Oct 15 10:25:39 2015
@@ -37,7 +37,7 @@ public class CachedIndexOutput extends R
public CachedIndexOutput(BlockDirectory directory, IndexOutput dest,
int blockSize, String name, Cache cache, int bufferSize) {
- super("dest=" + dest + " name=" + name, bufferSize);
+ super("dest=" + dest + " name=" + name, name, bufferSize);
this.directory = directory;
this.dest = dest;
this.blockSize = blockSize;
Modified: lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/blockcache/ReusedBufferedIndexOutput.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/blockcache/ReusedBufferedIndexOutput.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/blockcache/ReusedBufferedIndexOutput.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/blockcache/ReusedBufferedIndexOutput.java Thu Oct 15 10:25:39 2015
@@ -43,12 +43,12 @@ public abstract class ReusedBufferedInde
private final Store store;
- public ReusedBufferedIndexOutput(String resourceDescription) {
- this(resourceDescription, BUFFER_SIZE);
+ public ReusedBufferedIndexOutput(String resourceDescription, String name) {
+ this(resourceDescription, name, BUFFER_SIZE);
}
- public ReusedBufferedIndexOutput(String resourceDescription, int bufferSize) {
- super(resourceDescription);
+ public ReusedBufferedIndexOutput(String resourceDescription, String name, int bufferSize) {
+ super(resourceDescription, name);
checkBufferSize(bufferSize);
this.bufferSize = bufferSize;
store = BufferStore.instance(bufferSize);
Modified: lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/hdfs/HdfsDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/hdfs/HdfsDirectory.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/hdfs/HdfsDirectory.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/hdfs/HdfsDirectory.java Thu Oct 15 10:25:39 2015
@@ -29,7 +29,8 @@ import org.apache.hadoop.fs.FileContext;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.ipc.RemoteException;
+import org.apache.hadoop.hdfs.DistributedFileSystem;
+import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction;
import org.apache.lucene.store.BaseDirectory;
import org.apache.lucene.store.IOContext;
import org.apache.lucene.store.IndexInput;
@@ -63,36 +64,29 @@ public class HdfsDirectory extends BaseD
fileSystem = FileSystem.get(hdfsDirPath.toUri(), configuration);
fileContext = FileContext.getFileContext(hdfsDirPath.toUri(), configuration);
- while (true) {
- try {
- if (!fileSystem.exists(hdfsDirPath)) {
- boolean success = fileSystem.mkdirs(hdfsDirPath);
- if (!success) {
- throw new RuntimeException("Could not create directory: " + hdfsDirPath);
- }
- } else {
- fileSystem.mkdirs(hdfsDirPath); // check for safe mode
+ if (fileSystem instanceof DistributedFileSystem) {
+ // Make sure dfs is not in safe mode
+ while (((DistributedFileSystem) fileSystem).setSafeMode(SafeModeAction.SAFEMODE_GET, true)) {
+ LOG.warn("The NameNode is in SafeMode - Solr will wait 5 seconds and try again.");
+ try {
+ Thread.sleep(5000);
+ } catch (InterruptedException e) {
+ Thread.interrupted();
+ // continue
}
-
- break;
- } catch (RemoteException e) {
- if (e.getClassName().equals("org.apache.hadoop.hdfs.server.namenode.SafeModeException")) {
- LOG.warn("The NameNode is in SafeMode - Solr will wait 5 seconds and try again.");
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e1) {
- Thread.interrupted();
- }
- continue;
+ }
+ }
+
+ try {
+ if (!fileSystem.exists(hdfsDirPath)) {
+ boolean success = fileSystem.mkdirs(hdfsDirPath);
+ if (!success) {
+ throw new RuntimeException("Could not create directory: " + hdfsDirPath);
}
- org.apache.solr.common.util.IOUtils.closeQuietly(fileSystem);
- throw new RuntimeException(
- "Problem creating directory: " + hdfsDirPath, e);
- } catch (Exception e) {
- org.apache.solr.common.util.IOUtils.closeQuietly(fileSystem);
- throw new RuntimeException(
- "Problem creating directory: " + hdfsDirPath, e);
}
+ } catch (Exception e) {
+ org.apache.solr.common.util.IOUtils.closeQuietly(fileSystem);
+ throw new RuntimeException("Problem creating directory: " + hdfsDirPath, e);
}
}
@@ -113,7 +107,12 @@ public class HdfsDirectory extends BaseD
@Override
public IndexOutput createOutput(String name, IOContext context) throws IOException {
- return new HdfsFileWriter(getFileSystem(), new Path(hdfsDirPath, name));
+ return new HdfsFileWriter(getFileSystem(), new Path(hdfsDirPath, name), name);
+ }
+
+ @Override
+ public IndexOutput createTempOutput(String prefix, String suffix, IOContext context) throws IOException {
+ throw new UnsupportedOperationException();
}
private String[] getNormalNames(List<String> files) {
Modified: lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/hdfs/HdfsFileWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/hdfs/HdfsFileWriter.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/hdfs/HdfsFileWriter.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/store/hdfs/HdfsFileWriter.java Thu Oct 15 10:25:39 2015
@@ -37,8 +37,8 @@ public class HdfsFileWriter extends Outp
public static final String HDFS_SYNC_BLOCK = "solr.hdfs.sync.block";
public static final int BUFFER_SIZE = 16384;
- public HdfsFileWriter(FileSystem fileSystem, Path path) throws IOException {
- super("fileSystem=" + fileSystem + " path=" + path, getOutputStream(fileSystem, path), BUFFER_SIZE);
+ public HdfsFileWriter(FileSystem fileSystem, Path path, String name) throws IOException {
+ super("fileSystem=" + fileSystem + " path=" + path, name, getOutputStream(fileSystem, path), BUFFER_SIZE);
}
private static final OutputStream getOutputStream(FileSystem fileSystem, Path path) throws IOException {
Modified: lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactory.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/java/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactory.java Thu Oct 15 10:25:39 2015
@@ -47,6 +47,7 @@ import java.util.Set;
import static org.apache.solr.common.SolrException.ErrorCode.BAD_REQUEST;
import static org.apache.solr.common.SolrException.ErrorCode.SERVER_ERROR;
+import static org.apache.solr.core.ConfigSetProperties.IMMUTABLE_CONFIGSET_ARG;
/**
@@ -290,6 +291,9 @@ public class AddSchemaFieldsUpdateProces
// nothing to do - no fields will be added - exit from the retry loop
log.debug("No fields to add to the schema.");
break;
+ } else if ( isImmutableConfigSet(core) ) {
+ final String message = "This ConfigSet is immutable.";
+ throw new SolrException(BAD_REQUEST, message);
}
if (log.isDebugEnabled()) {
StringBuilder builder = new StringBuilder();
@@ -399,5 +403,11 @@ public class AddSchemaFieldsUpdateProces
}
return selector;
}
+
+ private boolean isImmutableConfigSet(SolrCore core) {
+ NamedList args = core.getConfigSetProperties();
+ Object immutable = args != null ? args.get(IMMUTABLE_CONFIGSET_ARG) : null;
+ return immutable != null ? Boolean.parseBoolean(immutable.toString()) : false;
+ }
}
}
Modified: lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderTest.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderTest.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderTest.java Thu Oct 15 10:25:39 2015
@@ -161,6 +161,13 @@ public class ChaosMonkeySafeLeaderTest e
Thread.sleep(2000);
waitForThingsToLevelOut(180000);
+
+ // even if things were leveled out, a jetty may have just been stopped or something
+ // we wait again and wait to level out again to make sure the system is not still in flux
+
+ Thread.sleep(3000);
+
+ waitForThingsToLevelOut(180000);
checkShardConsistency(batchSize == 1, true);
Modified: lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/core/TestConfigSetImmutable.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/core/TestConfigSetImmutable.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/core/TestConfigSetImmutable.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/core/TestConfigSetImmutable.java Thu Oct 15 10:25:39 2015
@@ -23,6 +23,8 @@ import java.util.Map;
import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.client.solrj.impl.XMLResponseParser;
+import org.apache.solr.common.util.NamedList;
import org.apache.solr.util.RestTestBase;
import org.junit.After;
import org.junit.Before;
@@ -48,9 +50,8 @@ public class TestConfigSetImmutable exte
FileUtils.write(new File(tmpConfDir, "configsetprops.json"), new StringBuilder("{\"immutable\":\"true\"}"));
System.setProperty("managed.schema.mutable", "true");
- System.setProperty("enable.update.log", "false");
- createJettyAndHarness(tmpSolrHome.getAbsolutePath(), "solrconfig-managed-schema.xml", "schema-rest.xml",
+ createJettyAndHarness(tmpSolrHome.getAbsolutePath(), "solrconfig-schemaless.xml", "schema-rest.xml",
"/solr", true, null);
}
@@ -95,4 +96,24 @@ public class TestConfigSetImmutable exte
assertNotNull(map.get("errors"));
assertTrue(map.get("errors").toString().contains("immutable"));
}
+
+ @Test
+ public void testAddSchemaFieldsImmutable() throws Exception {
+ final String error = "error";
+
+ // check writing an existing field is okay
+ String updateXMLSafe = "<add><doc><field name=\"id\">\"testdoc\"</field></doc></add>";
+ String response = restTestHarness.update(updateXMLSafe);
+ XMLResponseParser parser = new XMLResponseParser();
+ NamedList<Object> listResponse = parser.processResponse(new StringReader(response));
+ assertNull(listResponse.get(error));
+
+ // check writing a new field is not okay
+ String updateXMLNotSafe = "<add><doc><field name=\"id\">\"testdoc\"</field>" +
+ "<field name=\"newField67\">\"foobar\"</field></doc></add>";
+ response = restTestHarness.update(updateXMLNotSafe);
+ listResponse = parser.processResponse(new StringReader(response));
+ assertNotNull(listResponse.get(error));
+ assertTrue(listResponse.get(error).toString().contains("immutable"));
+ }
}
Modified: lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java Thu Oct 15 10:25:39 2015
@@ -28,14 +28,7 @@ import com.facebook.presto.sql.tree.Stat
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;
-import org.apache.solr.client.solrj.io.stream.StatsStream;
import org.apache.solr.client.solrj.io.stream.TupleStream;
-import org.apache.solr.client.solrj.io.stream.metrics.CountMetric;
-import org.apache.solr.client.solrj.io.stream.metrics.MaxMetric;
-import org.apache.solr.client.solrj.io.stream.metrics.MeanMetric;
-import org.apache.solr.client.solrj.io.stream.metrics.Metric;
-import org.apache.solr.client.solrj.io.stream.metrics.MinMetric;
-import org.apache.solr.client.solrj.io.stream.metrics.SumMetric;
import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.common.params.CommonParams;
import org.junit.After;
@@ -95,13 +88,17 @@ public class TestSQLHandler extends Abst
waitForRecoveriesToFinish(false);
testPredicate();
testBasicSelect();
+ testMixedCaseFields();
testBasicGrouping();
testBasicGroupingFacets();
+ testSelectDistinct();
+ testSelectDistinctFacets();
testAggregatesWithoutGrouping();
testSQLException();
testTimeSeriesGrouping();
testTimeSeriesGroupingFacet();
testParallelBasicGrouping();
+ testParallelSelectDistinct();
testParallelTimeSeriesGrouping();
}
@@ -124,6 +121,15 @@ public class TestSQLHandler extends Abst
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')";
@@ -200,11 +206,11 @@ public class TestSQLHandler extends Abst
// 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))')))";
+ 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)))))"));
+ assert(sqlVistor.query.equals("((c:[0 TO 100]) OR ((l:(z*)) AND (M:(j OR (k NOT s)))))"));
}
private void testBasicSelect() throws Exception {
@@ -216,18 +222,18 @@ public class TestSQLHandler extends Abst
commit();
- indexr("id", "1", "text", "XXXX XXXX", "str_s", "a", "field_i", "7");
- indexr("id", "2", "text", "XXXX XXXX", "str_s", "b", "field_i", "8");
- indexr("id", "3", "text", "XXXX XXXX", "str_s", "a", "field_i", "20");
- indexr("id", "4", "text", "XXXX XXXX", "str_s", "b", "field_i", "11");
- indexr("id", "5", "text", "XXXX XXXX", "str_s", "c", "field_i", "30");
- 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");
+ indexDoc(sdoc("id", "1", "text", "XXXX XXXX", "str_s", "a", "field_i", "7"));
+ indexDoc(sdoc("id", "2", "text", "XXXX XXXX", "str_s", "b", "field_i", "8"));
+ indexDoc(sdoc("id", "3", "text", "XXXX XXXX", "str_s", "a", "field_i", "20"));
+ indexDoc(sdoc("id", "4", "text", "XXXX XXXX", "str_s", "b", "field_i", "11"));
+ indexDoc(sdoc("id", "5", "text", "XXXX XXXX", "str_s", "c", "field_i", "30"));
+ indexDoc(sdoc("id", "6", "text", "XXXX XXXX", "str_s", "c", "field_i", "40"));
+ 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();
Map params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "select id, field_i, str_s from collection1 where text='XXXX' order by field_i desc");
+ params.put("stmt", "select 'id', field_i, str_s from collection1 where 'text'='XXXX' order by field_i desc");
SolrStream solrStream = new SolrStream(jetty.url, params);
List<Tuple> tuples = getTuples(solrStream);
@@ -278,7 +284,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "select id, field_i, str_s from collection1 where text='XXXX' order by field_i desc limit 1");
+ params.put("stmt", "select id, field_i, str_s from collection1 where text='XXXX' order by field_i desc limit 1");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
@@ -292,7 +298,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "select id, field_i, str_s from collection1 where text='XXXX' AND id='(1 2 3)' order by field_i desc");
+ params.put("stmt", "select id, field_i, str_s from collection1 where text='XXXX' AND id='(1 2 3)' order by field_i desc");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
@@ -319,6 +325,116 @@ public class TestSQLHandler extends Abst
}
}
+
+ private void testMixedCaseFields() throws Exception {
+ try {
+
+ CloudJettyRunner jetty = this.cloudJettys.get(0);
+
+ del("*:*");
+
+ commit();
+
+ indexDoc(sdoc("id", "1", "Text_t", "XXXX XXXX", "Str_s", "a", "Field_i", "7"));
+ indexDoc(sdoc("id", "2", "Text_t", "XXXX XXXX", "Str_s", "b", "Field_i", "8"));
+ indexDoc(sdoc("id", "3", "Text_t", "XXXX XXXX", "Str_s", "a", "Field_i", "20"));
+ indexDoc(sdoc("id", "4", "Text_t", "XXXX XXXX", "Str_s", "b", "Field_i", "11"));
+ indexDoc(sdoc("id", "5", "Text_t", "XXXX XXXX", "Str_s", "c", "Field_i", "30"));
+ indexDoc(sdoc("id", "6", "Text_t", "XXXX XXXX", "Str_s", "c", "Field_i", "40"));
+ 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();
+ Map params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("stmt", "select id, Field_i, Str_s from Collection1 where Text_t='XXXX' order by Field_i desc");
+
+ SolrStream solrStream = new SolrStream(jetty.url, params);
+ List<Tuple> tuples = getTuples(solrStream);
+
+ assert(tuples.size() == 8);
+
+ Tuple tuple = null;
+
+ tuple = tuples.get(0);
+ assert(tuple.getLong("id") == 8);
+ assert(tuple.getLong("Field_i") == 60);
+ assert(tuple.get("Str_s").equals("c"));
+
+ tuple = tuples.get(1);
+ assert(tuple.getLong("id") == 7);
+ assert(tuple.getLong("Field_i") == 50);
+ assert(tuple.get("Str_s").equals("c"));
+
+ tuple = tuples.get(2);
+ assert(tuple.getLong("id") == 6);
+ assert(tuple.getLong("Field_i") == 40);
+ assert(tuple.get("Str_s").equals("c"));
+
+ tuple = tuples.get(3);
+ assert(tuple.getLong("id") == 5);
+ assert(tuple.getLong("Field_i") == 30);
+ assert(tuple.get("Str_s").equals("c"));
+
+ tuple = tuples.get(4);
+ assert(tuple.getLong("id") == 3);
+ assert(tuple.getLong("Field_i") == 20);
+ assert(tuple.get("Str_s").equals("a"));
+
+ tuple = tuples.get(5);
+ assert(tuple.getLong("id") == 4);
+ assert(tuple.getLong("Field_i") == 11);
+ assert(tuple.get("Str_s").equals("b"));
+
+ tuple = tuples.get(6);
+ assert(tuple.getLong("id") == 2);
+ assert(tuple.getLong("Field_i") == 8);
+ assert(tuple.get("Str_s").equals("b"));
+
+ tuple = tuples.get(7);
+ assert(tuple.getLong("id") == 1);
+ assert(tuple.getLong("Field_i") == 7);
+ assert(tuple.get("Str_s").equals("a"));
+
+ params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("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, params);
+ tuples = getTuples(solrStream);
+
+ assert(tuples.size() == 2);
+
+ tuple = tuples.get(0);
+ assert(tuple.get("Str_s").equals("c"));
+ assert(tuple.getDouble("sum(Field_i)") == 60);
+
+ tuple = tuples.get(1);
+ assert(tuple.get("Str_s").equals("a"));
+ assert(tuple.getDouble("sum(Field_i)") == 7);
+
+ params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("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, params);
+ tuples = getTuples(solrStream);
+
+ assert(tuples.size() == 2);
+
+ tuple = tuples.get(0);
+ assert(tuple.get("Str_s").equals("c"));
+ assert(tuple.getDouble("sum(Field_i)") == 60);
+
+ tuple = tuples.get(1);
+ assert(tuple.get("Str_s").equals("a"));
+ assert(tuple.getDouble("sum(Field_i)") == 7);
+
+
+ } finally {
+ delete();
+ }
+ }
+
private void testSQLException() throws Exception {
try {
@@ -328,19 +444,19 @@ public class TestSQLHandler extends Abst
commit();
- indexr("id", "1", "text", "XXXX XXXX", "str_s", "a", "field_i", "7");
- indexr("id", "2", "text", "XXXX XXXX", "str_s", "b", "field_i", "8");
- indexr("id", "3", "text", "XXXX XXXX", "str_s", "a", "field_i", "20");
- indexr("id", "4", "text", "XXXX XXXX", "str_s", "b", "field_i", "11");
- indexr("id", "5", "text", "XXXX XXXX", "str_s", "c", "field_i", "30");
- 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");
+ indexDoc(sdoc("id", "1", "text", "XXXX XXXX", "str_s", "a", "field_i", "7"));
+ indexDoc(sdoc("id", "2", "text", "XXXX XXXX", "str_s", "b", "field_i", "8"));
+ indexDoc(sdoc("id", "3", "text", "XXXX XXXX", "str_s", "a", "field_i", "20"));
+ indexDoc(sdoc("id", "4", "text", "XXXX XXXX", "str_s", "b", "field_i", "11"));
+ indexDoc(sdoc("id", "5", "text", "XXXX XXXX", "str_s", "c", "field_i", "30"));
+ indexDoc(sdoc("id", "6", "text", "XXXX XXXX", "str_s", "c", "field_i", "40"));
+ 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();
Map params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "select id, field_i, str_s from collection1 where text='XXXX' order by field_iff desc");
+ params.put("stmt", "select id, field_i, str_s from collection1 where text='XXXX' order by field_iff desc");
SolrStream solrStream = new SolrStream(jetty.url, params);
Tuple tuple = getTuple(new ExceptionStream(solrStream));
@@ -351,7 +467,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "select id, field_iff, str_s from collection1 where text='XXXX' order by field_iff desc");
+ params.put("stmt", "select id, field_iff, str_s from collection1 where text='XXXX' order by field_iff desc");
solrStream = new SolrStream(jetty.url, params);
tuple = getTuple(new ExceptionStream(solrStream));
@@ -362,7 +478,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "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))");
+ params.put("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))");
solrStream = new SolrStream(jetty.url, params);
tuple = getTuple(new ExceptionStream(solrStream));
@@ -373,7 +489,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "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))");
+ params.put("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))");
solrStream = new SolrStream(jetty.url, params);
tuple = getTuple(new ExceptionStream(solrStream));
@@ -384,7 +500,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "select str_s from collection1 where text='XXXX' group by str_s");
+ params.put("stmt", "select str_s from collection1 where text='XXXX' group by str_s");
solrStream = new SolrStream(jetty.url, params);
tuple = getTuple(new ExceptionStream(solrStream));
@@ -417,7 +533,7 @@ public class TestSQLHandler extends Abst
commit();
Map params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "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");
+ params.put("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");
SolrStream solrStream = new SolrStream(jetty.url, params);
List<Tuple> tuples = getTuples(solrStream);
@@ -445,7 +561,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "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");
+ params.put("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");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
@@ -482,7 +598,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "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");
+ params.put("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");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
@@ -499,7 +615,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "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))");
+ params.put("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))");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
@@ -517,7 +633,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "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))");
+ params.put("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))");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
@@ -530,7 +646,8 @@ public class TestSQLHandler extends Abst
}
}
- private void testBasicGroupingFacets() throws Exception {
+
+ private void testSelectDistinctFacets() throws Exception {
try {
CloudJettyRunner jetty = this.cloudJettys.get(0);
@@ -539,128 +656,166 @@ public class TestSQLHandler extends Abst
commit();
- indexr("id", "1", "text", "XXXX XXXX", "str_s", "a", "field_i", "7");
- indexr("id", "2", "text", "XXXX XXXX", "str_s", "b", "field_i", "8");
+ indexr("id", "1", "text", "XXXX XXXX", "str_s", "a", "field_i", "1");
+ indexr("id", "2", "text", "XXXX XXXX", "str_s", "b", "field_i", "2");
indexr("id", "3", "text", "XXXX XXXX", "str_s", "a", "field_i", "20");
- indexr("id", "4", "text", "XXXX XXXX", "str_s", "b", "field_i", "11");
+ indexr("id", "4", "text", "XXXX XXXX", "str_s", "b", "field_i", "2");
indexr("id", "5", "text", "XXXX XXXX", "str_s", "c", "field_i", "30");
- indexr("id", "6", "text", "XXXX XXXX", "str_s", "c", "field_i", "40");
+ indexr("id", "6", "text", "XXXX XXXX", "str_s", "c", "field_i", "30");
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();
Map params = new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("aggregationMode", "facet");
- params.put("sql", "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");
+ params.put("stmt", "select distinct 'str_s', 'field_i' from collection1 order by 'str_s' asc, 'field_i' asc");
SolrStream solrStream = new SolrStream(jetty.url, params);
List<Tuple> tuples = getTuples(solrStream);
- //Only two results because of the limit.
- assert(tuples.size() == 2);
+ assert(tuples.size() == 6);
Tuple tuple = null;
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.get("str_s").equals("a"));
+ assert(tuple.getLong("field_i") == 1);
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.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);
+
+ //reverse the sort
params = new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("aggregationMode", "facet");
- params.put("sql", "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");
+ params.put("stmt", "select distinct str_s, field_i from collection1 order by str_s desc, field_i desc");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
- //The sort by and order by match and no limit is applied. All the Tuples should be returned in
- //this scenario.
-
- assert(tuples.size() == 3);
+ assert(tuples.size() == 6);
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.getLong("field_i") == 60);
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.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);
+
+ tuple = tuples.get(3);
+ 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.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.getLong("field_i") == 20);
+ tuple = tuples.get(5);
+ assert(tuple.get("str_s").equals("a"));
+ assert(tuple.getLong("field_i") == 1);
+
+ //test with limit
params = new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("aggregationMode", "facet");
- params.put("sql", "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");
+ params.put("stmt", "select distinct str_s, field_i from collection1 order by str_s desc, field_i desc limit 2");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
- assert(tuples.size() == 1);
+ assert(tuples.size() == 2);
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.get("str_s").equals("c"));
+ assert(tuple.getLong("field_i") == 60);
- params = new HashMap();
+ tuple = tuples.get(1);
+ assert(tuple.get("str_s").equals("c"));
+ assert(tuple.getLong("field_i") == 50);
+
+
+ // Test without a sort. Sort should be asc by default.
+
+ new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("aggregationMode", "facet");
- params.put("sql", "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))");
+ params.put("stmt", "select distinct str_s, field_i from collection1");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
- //Only two results because of the limit.
- assert(tuples.size() == 1);
+ assert(tuples.size() == 6);
tuple = tuples.get(0);
+ assert(tuple.get("str_s").equals("a"));
+ 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.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.getLong("field_i") == 2);
- params = new HashMap();
+ 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.
+
+ new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("aggregationMode", "facet");
- params.put("sql", "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))");
+ params.put("stmt", "select distinct str_s, field_i from collection1 where str_s = 'a'");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
- assert(tuples.size() == 0);
+ assert(tuples.size() == 2);
+
+ tuple = tuples.get(0);
+ assert(tuple.get("str_s").equals("a"));
+ assert (tuple.getLong("field_i") == 1);
+
+ tuple = tuples.get(1);
+ assert(tuple.get("str_s").equals("a"));
+ assert(tuple.getLong("field_i") == 20);
} finally {
@@ -669,10 +824,7 @@ public class TestSQLHandler extends Abst
}
-
-
-
- private void testParallelBasicGrouping() throws Exception {
+ private void testSelectDistinct() throws Exception {
try {
CloudJettyRunner jetty = this.cloudJettys.get(0);
@@ -681,48 +833,537 @@ public class TestSQLHandler extends Abst
commit();
- indexr("id", "1", "text", "XXXX XXXX", "str_s", "a", "field_i", "7");
- indexr("id", "2", "text", "XXXX XXXX", "str_s", "b", "field_i", "8");
+ indexr("id", "1", "text", "XXXX XXXX", "str_s", "a", "field_i", "1");
+ indexr("id", "2", "text", "XXXX XXXX", "str_s", "b", "field_i", "2");
indexr("id", "3", "text", "XXXX XXXX", "str_s", "a", "field_i", "20");
- indexr("id", "4", "text", "XXXX XXXX", "str_s", "b", "field_i", "11");
+ indexr("id", "4", "text", "XXXX XXXX", "str_s", "b", "field_i", "2");
indexr("id", "5", "text", "XXXX XXXX", "str_s", "c", "field_i", "30");
- indexr("id", "6", "text", "XXXX XXXX", "str_s", "c", "field_i", "40");
+ indexr("id", "6", "text", "XXXX XXXX", "str_s", "c", "field_i", "30");
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();
Map params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("numWorkers", "2");
- params.put("sql", "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");
+ params.put("stmt", "select distinct 'str_s', 'field_i' from collection1 order by 'str_s' asc, 'field_i' asc");
SolrStream solrStream = new SolrStream(jetty.url, params);
List<Tuple> tuples = getTuples(solrStream);
- //Only two results because of the limit.
- assert(tuples.size() == 2);
+ assert(tuples.size() == 6);
Tuple tuple = null;
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.get("str_s").equals("a"));
+ assert(tuple.getLong("field_i") == 1);
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.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);
+
+
+ //reverse the sort
+ params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("stmt", "select distinct str_s, field_i from collection1 order by str_s desc, field_i desc");
+
+ solrStream = new SolrStream(jetty.url, params);
+ tuples = getTuples(solrStream);
+
+ assert(tuples.size() == 6);
+
+ tuple = tuples.get(0);
+ assert(tuple.get("str_s").equals("c"));
+ assert(tuple.getLong("field_i") == 60);
+
+ tuple = tuples.get(1);
+ 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);
+
+ tuple = tuples.get(3);
+ 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);
+
+ tuple = tuples.get(5);
+ assert(tuple.get("str_s").equals("a"));
+ assert(tuple.getLong("field_i") == 1);
+
+
+ //test with limit
+ params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("stmt", "select distinct str_s, field_i from collection1 order by str_s desc, field_i desc limit 2");
+
+ solrStream = new SolrStream(jetty.url, params);
+ tuples = getTuples(solrStream);
+
+ assert(tuples.size() == 2);
+
+ tuple = tuples.get(0);
+ assert(tuple.get("str_s").equals("c"));
+ assert(tuple.getLong("field_i") == 60);
+
+ tuple = tuples.get(1);
+ assert(tuple.get("str_s").equals("c"));
+ assert(tuple.getLong("field_i") == 50);
+
+
+ // Test without a sort. Sort should be asc by default.
+
+ new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("stmt", "select distinct str_s, field_i from collection1");
+
+ solrStream = new SolrStream(jetty.url, params);
+ tuples = getTuples(solrStream);
+
+ assert(tuples.size() == 6);
+
+ tuple = tuples.get(0);
+ assert(tuple.get("str_s").equals("a"));
+ 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.
+
+ new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("stmt", "select distinct str_s, field_i from collection1 where str_s = 'a'");
+
+ solrStream = new SolrStream(jetty.url, params);
+ tuples = getTuples(solrStream);
+
+ assert(tuples.size() == 2);
+
+ tuple = tuples.get(0);
+ assert(tuple.get("str_s").equals("a"));
+ assert(tuple.getLong("field_i") == 1);
+
+ tuple = tuples.get(1);
+ assert(tuple.get("str_s").equals("a"));
+ assert(tuple.getLong("field_i") == 20);
+
+
+ } finally {
+ delete();
+ }
+ }
+
+ private void testParallelSelectDistinct() throws Exception {
+ try {
+
+ CloudJettyRunner jetty = this.cloudJettys.get(0);
+
+ del("*:*");
+
+ commit();
+
+ indexr("id", "1", "text", "XXXX XXXX", "str_s", "a", "field_i", "1");
+ indexr("id", "2", "text", "XXXX XXXX", "str_s", "b", "field_i", "2");
+ indexr("id", "3", "text", "XXXX XXXX", "str_s", "a", "field_i", "20");
+ indexr("id", "4", "text", "XXXX XXXX", "str_s", "b", "field_i", "2");
+ indexr("id", "5", "text", "XXXX XXXX", "str_s", "c", "field_i", "30");
+ indexr("id", "6", "text", "XXXX XXXX", "str_s", "c", "field_i", "30");
+ 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();
+ Map params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("numWorkers", "2");
+ params.put("stmt", "select distinct str_s, field_i from collection1 order by str_s asc, field_i asc");
+
+ SolrStream solrStream = new SolrStream(jetty.url, params);
+ List<Tuple> tuples = getTuples(solrStream);
+
+ assert(tuples.size() == 6);
+
+ Tuple tuple = null;
+
+ tuple = tuples.get(0);
+ assert(tuple.get("str_s").equals("a"));
+ 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);
+
+
+ //reverse the sort
+ params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("numWorkers", "2");
+ params.put("stmt", "select distinct str_s, field_i from collection1 order by str_s desc, field_i desc");
+
+ solrStream = new SolrStream(jetty.url, params);
+ tuples = getTuples(solrStream);
+
+ assert(tuples.size() == 6);
+
+ tuple = tuples.get(0);
+ assert(tuple.get("str_s").equals("c"));
+ assert(tuple.getLong("field_i") == 60);
+
+ tuple = tuples.get(1);
+ 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);
+
+ tuple = tuples.get(3);
+ 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);
+
+ tuple = tuples.get(5);
+ assert(tuple.get("str_s").equals("a"));
+ assert(tuple.getLong("field_i") == 1);
+
+
+ //test with limit
+ params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("numWorkers", "2");
+ params.put("stmt", "select distinct str_s, field_i from collection1 order by str_s desc, field_i desc limit 2");
+
+ solrStream = new SolrStream(jetty.url, params);
+ tuples = getTuples(solrStream);
+
+ assert(tuples.size() == 2);
+
+ tuple = tuples.get(0);
+ assert(tuple.get("str_s").equals("c"));
+ assert(tuple.getLong("field_i") == 60);
+
+ tuple = tuples.get(1);
+ assert(tuple.get("str_s").equals("c"));
+ assert(tuple.getLong("field_i") == 50);
+
+
+ // Test without a sort. Sort should be asc by default.
+
+ new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("numWorkers", "2");
+ params.put("stmt", "select distinct str_s, field_i from collection1");
+
+ solrStream = new SolrStream(jetty.url, params);
+ tuples = getTuples(solrStream);
+
+ assert(tuples.size() == 6);
+
+ tuple = tuples.get(0);
+ assert(tuple.get("str_s").equals("a"));
+ 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.
+
+ new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("numWorkers", "2");
+ params.put("stmt", "select distinct str_s, field_i from collection1 where str_s = 'a'");
+
+ solrStream = new SolrStream(jetty.url, params);
+ tuples = getTuples(solrStream);
+
+ assert(tuples.size() == 2);
+
+ tuple = tuples.get(0);
+ assert(tuple.get("str_s").equals("a"));
+ assert(tuple.getLong("field_i") == 1);
+
+ tuple = tuples.get(1);
+ assert(tuple.get("str_s").equals("a"));
+ assert(tuple.getLong("field_i") == 20);
+
+ } finally {
+ delete();
+ }
+ }
+
+
+
+ private void testBasicGroupingFacets() throws Exception {
+ try {
+
+ CloudJettyRunner jetty = this.cloudJettys.get(0);
+
+ del("*:*");
+
+ commit();
+
+ indexr("id", "1", "text", "XXXX XXXX", "str_s", "a", "field_i", "7");
+ indexr("id", "2", "text", "XXXX XXXX", "str_s", "b", "field_i", "8");
+ indexr("id", "3", "text", "XXXX XXXX", "str_s", "a", "field_i", "20");
+ indexr("id", "4", "text", "XXXX XXXX", "str_s", "b", "field_i", "11");
+ indexr("id", "5", "text", "XXXX XXXX", "str_s", "c", "field_i", "30");
+ 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");
+ commit();
+ Map params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("aggregationMode", "facet");
+ params.put("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");
+
+ SolrStream solrStream = new SolrStream(jetty.url, params);
+ List<Tuple> tuples = getTuples(solrStream);
+
+ //Only two results because of the limit.
+ assert(tuples.size() == 2);
+
+ Tuple tuple = null;
+
+ 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);
+
+ 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);
+
+ params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("aggregationMode", "facet");
+ params.put("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");
+
+ solrStream = new SolrStream(jetty.url, params);
+ tuples = getTuples(solrStream);
+
+ //The sort by and order by match and no limit is applied. All the Tuples should be returned in
+ //this scenario.
+
+ assert(tuples.size() == 3);
+
+ 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);
+
+ 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);
+
+ 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);
+
+
+ params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("aggregationMode", "facet");
+ params.put("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");
+
+ solrStream = new SolrStream(jetty.url, params);
+ tuples = getTuples(solrStream);
+
+ 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);
+
+ params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("aggregationMode", "facet");
+ params.put("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))");
+
+ solrStream = new SolrStream(jetty.url, params);
+ 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);
+
+ params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("aggregationMode", "facet");
+ params.put("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))");
+
+ solrStream = new SolrStream(jetty.url, params);
+ tuples = getTuples(solrStream);
+
+ assert(tuples.size() == 0);
+
+
+ } finally {
+ delete();
+ }
+ }
+
+
+
+
+
+ private void testParallelBasicGrouping() throws Exception {
+ try {
+
+ CloudJettyRunner jetty = this.cloudJettys.get(0);
+
+ del("*:*");
+
+ commit();
+
+ indexr("id", "1", "text", "XXXX XXXX", "str_s", "a", "field_i", "7");
+ indexr("id", "2", "text", "XXXX XXXX", "str_s", "b", "field_i", "8");
+ indexr("id", "3", "text", "XXXX XXXX", "str_s", "a", "field_i", "20");
+ indexr("id", "4", "text", "XXXX XXXX", "str_s", "b", "field_i", "11");
+ indexr("id", "5", "text", "XXXX XXXX", "str_s", "c", "field_i", "30");
+ 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");
+ commit();
+ Map params = new HashMap();
+ params.put(CommonParams.QT, "/sql");
+ params.put("numWorkers", "2");
+ params.put("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");
+
+ SolrStream solrStream = new SolrStream(jetty.url, params);
+ List<Tuple> tuples = getTuples(solrStream);
+
+ //Only two results because of the limit.
+ assert(tuples.size() == 2);
+
+ Tuple tuple = null;
+
+ 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);
+
+ 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);
+
params = new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("numWorkers", "2");
- params.put("sql", "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");
+ params.put("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");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
@@ -759,7 +1400,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("numWorkers", "2");
- params.put("sql", "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");
+ params.put("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");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
@@ -786,7 +1427,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("numWorkers", "2");
- params.put("sql", "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))");
+ params.put("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))");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
@@ -805,7 +1446,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("numWorkers", "2");
- params.put("sql", "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))");
+ params.put("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))");
solrStream = new SolrStream(jetty.url, params);
tuples = getTuples(solrStream);
@@ -841,7 +1482,7 @@ public class TestSQLHandler extends Abst
Map params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "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");
+ params.put("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");
SolrStream solrStream = new SolrStream(jetty.url, params);
@@ -879,7 +1520,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "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");
+ params.put("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");
solrStream = new SolrStream(jetty.url, params);
@@ -914,7 +1555,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "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'");
+ params.put("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'");
solrStream = new SolrStream(jetty.url, params);
@@ -972,7 +1613,7 @@ public class TestSQLHandler extends Abst
commit();
Map params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "select year_i, sum(item_i) from collection1 group by year_i order by year_i desc");
+ params.put("stmt", "select year_i, sum(item_i) from collection1 group by year_i order by year_i desc");
SolrStream solrStream = new SolrStream(jetty.url, params);
List<Tuple> tuples = getTuples(solrStream);
@@ -990,7 +1631,7 @@ public class TestSQLHandler extends Abst
assert(tuple.getLong("year_i") == 2014);
assert(tuple.getDouble("sum(item_i)") == 7);
- params.put("sql", "select year_i, month_i, sum(item_i) from collection1 group by year_i, month_i order by year_i desc, month_i desc");
+ params.put("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, params);
tuples = getTuples(solrStream);
@@ -1017,7 +1658,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
- params.put("sql", "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");
+ params.put("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, params);
tuples = getTuples(solrStream);
@@ -1091,7 +1732,7 @@ public class TestSQLHandler extends Abst
Map params = new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("aggregationMode", "facet");
- params.put("sql", "select year_i, sum(item_i) from collection1 group by year_i order by year_i desc");
+ params.put("stmt", "select year_i, sum(item_i) from collection1 group by year_i order by year_i desc");
SolrStream solrStream = new SolrStream(jetty.url, params);
List<Tuple> tuples = getTuples(solrStream);
@@ -1113,7 +1754,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("aggregationMode", "facet");
- params.put("sql", "select year_i, month_i, sum(item_i) from collection1 group by year_i, month_i order by year_i desc, month_i desc");
+ params.put("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, params);
tuples = getTuples(solrStream);
@@ -1140,7 +1781,7 @@ public class TestSQLHandler extends Abst
params = new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("aggregationMode", "facet");
- params.put("sql", "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");
+ params.put("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, params);
tuples = getTuples(solrStream);
@@ -1210,7 +1851,7 @@ public class TestSQLHandler extends Abst
Map params = new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("numWorkers", 2);
- params.put("sql", "select year_i, sum(item_i) from collection1 group by year_i order by year_i desc");
+ params.put("stmt", "select year_i, sum(item_i) from collection1 group by year_i order by year_i desc");
SolrStream solrStream = new SolrStream(jetty.url, params);
List<Tuple> tuples = getTuples(solrStream);
@@ -1231,7 +1872,7 @@ public class TestSQLHandler extends Abst
new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("numWorkers", 2);
- params.put("sql", "select year_i, month_i, sum(item_i) from collection1 group by year_i, month_i order by year_i desc, month_i desc");
+ params.put("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, params);
tuples = getTuples(solrStream);
@@ -1260,7 +1901,7 @@ public class TestSQLHandler extends Abst
new HashMap();
params.put(CommonParams.QT, "/sql");
params.put("numWorkers", 2);
- params.put("sql", "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");
+ params.put("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, params);
tuples = getTuples(solrStream);
Modified: lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java Thu Oct 15 10:25:39 2015
@@ -522,20 +522,4 @@ public class SuggestComponentTest extend
);
}
- private void waitForWarming() throws InterruptedException {
- RefCounted<SolrIndexSearcher> registeredSearcher = h.getCore().getRegisteredSearcher();
- RefCounted<SolrIndexSearcher> newestSearcher = h.getCore().getNewestSearcher(false);;
- while (registeredSearcher == null || registeredSearcher.get() != newestSearcher.get()) {
- if (registeredSearcher != null) {
- registeredSearcher.decref();
- }
- newestSearcher.decref();
- Thread.sleep(50);
- registeredSearcher = h.getCore().getRegisteredSearcher();
- newestSearcher = h.getCore().getNewestSearcher(false);
- }
- registeredSearcher.decref();
- newestSearcher.decref();
- }
-
}
Modified: lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/QueryEqualityTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/QueryEqualityTest.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/QueryEqualityTest.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/QueryEqualityTest.java Thu Oct 15 10:25:39 2015
@@ -412,6 +412,42 @@ public class QueryEqualityTest extends S
"{!child of=foo_s:parent}dude");
}
+ public void testGraphQuery() throws Exception {
+ SolrQueryRequest req = req("from", "node_s",
+ "to","edge_s",
+ "traversalFilter","foo",
+ "returnOnlyLeaf","true",
+ "returnRoot","false",
+ "maxDepth","2",
+ "useAutn","false"
+ );
+ // make sure all param subsitution works for all args to graph query.
+ assertQueryEquals("graph", req,
+ "{!graph from=node_s to=edge_s}*:*",
+ "{!graph from=$from to=$to}*:*");
+
+ assertQueryEquals("graph", req,
+ "{!graph from=node_s to=edge_s traversalFilter=foo}*:*",
+ "{!graph from=$from to=$to traversalFilter=$traversalFilter}*:*");
+
+ assertQueryEquals("graph", req,
+ "{!graph from=node_s to=edge_s traversalFilter=foo returnOnlyLeaf=true}*:*",
+ "{!graph from=$from to=$to traversalFilter=$traversalFilter returnOnlyLeaf=$returnOnlyLeaf}*:*");
+
+ assertQueryEquals("graph", req,
+ "{!graph from=node_s to=edge_s traversalFilter=foo returnOnlyLeaf=true returnRoot=false}*:*",
+ "{!graph from=$from to=$to traversalFilter=$traversalFilter returnOnlyLeaf=$returnOnlyLeaf returnRoot=$returnRoot}*:*");
+
+ assertQueryEquals("graph", req,
+ "{!graph from=node_s to=edge_s traversalFilter=foo returnOnlyLeaf=true returnRoot=false maxDepth=2}*:*",
+ "{!graph from=$from to=$to traversalFilter=$traversalFilter returnOnlyLeaf=$returnOnlyLeaf returnRoot=$returnRoot maxDepth=$maxDepth}*:*");
+
+ assertQueryEquals("graph", req,
+ "{!graph from=node_s to=edge_s traversalFilter=foo returnOnlyLeaf=true returnRoot=false maxDepth=2 useAutn=false}*:*",
+ "{!graph from=$from to=$to traversalFilter=$traversalFilter returnOnlyLeaf=$returnOnlyLeaf returnRoot=$returnRoot maxDepth=$maxDepth useAutn=$useAutn}*:*");
+
+ }
+
public void testQuerySurround() throws Exception {
assertQueryEquals("surround", "{!surround}and(apache,solr)",
"and(apache,solr)", "apache AND solr");
Modified: lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestDocSet.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestDocSet.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestDocSet.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestDocSet.java Thu Oct 15 10:25:39 2015
@@ -38,7 +38,6 @@ import org.apache.lucene.index.SortedSet
import org.apache.lucene.index.StoredFieldVisitor;
import org.apache.lucene.search.DocIdSet;
import org.apache.lucene.search.DocIdSetIterator;
-import org.apache.lucene.search.Filter;
import org.apache.lucene.util.BitSetIterator;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.FixedBitSet;
Modified: lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java Thu Oct 15 10:25:39 2015
@@ -517,13 +517,13 @@ public class TestExtendedDismaxParser ex
"//str[@name='parsedquery_toString'][.='+id:42']");
assertQ(req("defType","edismax", "debugQuery","true", "rows","0", "uf","*^5.0", "q","id:42"),
- "//str[@name='parsedquery_toString'][.='+id:42^5.0']");
+ "//str[@name='parsedquery_toString'][.='+(id:42)^5.0']");
assertQ(req("defType","edismax", "debugQuery","true", "rows","0", "uf","*^2.0 id^5.0 -xyz", "q","name:foo"),
- "//str[@name='parsedquery_toString'][.='+name:foo^2.0']");
+ "//str[@name='parsedquery_toString'][.='+(name:foo)^2.0']");
assertQ(req("defType","edismax", "debugQuery","true", "rows","0", "uf","i*^5.0", "q","id:42"),
- "//str[@name='parsedquery_toString'][.='+id:42^5.0']");
+ "//str[@name='parsedquery_toString'][.='+(id:42)^5.0']");
assertQ(req("defType","edismax", "uf","-*", "q","cannons"),
@@ -754,19 +754,19 @@ public class TestExtendedDismaxParser ex
"ps", "3",
"defType", "edismax",
"debugQuery", "true"),
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"zzzz xxxx cccc vvvv\"~1^10.0')]",
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"zzzz xxxx cccc vvvv\"~2^20.0')]",
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"zzzz xxxx cccc vvvv\"~3^30.0')]",
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"zzzz xxxx\"~2^22.0')]",
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"xxxx cccc\"~2^22.0')]",
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"cccc vvvv\"~2^22.0')]",
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"zzzz xxxx\"~3^33.0')]",
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"xxxx cccc\"~3^33.0')]",
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"cccc vvvv\"~3^33.0')]",
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"zzzz xxxx cccc\"~2^222.0')]",
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"xxxx cccc vvvv\"~2^222.0')]",
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"zzzz xxxx cccc\"~3^333.0')]",
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"xxxx cccc vvvv\"~3^333.0')]"
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"zzzz xxxx cccc vvvv\"~1)^10.0')]",
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"zzzz xxxx cccc vvvv\"~2)^20.0')]",
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"zzzz xxxx cccc vvvv\"~3)^30.0')]",
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"zzzz xxxx\"~2)^22.0')]",
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"xxxx cccc\"~2)^22.0')]",
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"cccc vvvv\"~2)^22.0')]",
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"zzzz xxxx\"~3)^33.0')]",
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"xxxx cccc\"~3)^33.0')]",
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"cccc vvvv\"~3)^33.0')]",
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"zzzz xxxx cccc\"~2)^222.0')]",
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"xxxx cccc vvvv\"~2)^222.0')]",
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"zzzz xxxx cccc\"~3)^333.0')]",
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"xxxx cccc vvvv\"~3)^333.0')]"
);
assertQ(
@@ -806,7 +806,7 @@ public class TestExtendedDismaxParser ex
"ps2", "4",
"defType", "edismax",
"debugQuery", "true"),
- "//str[@name='parsedquery'][contains(.,'phrase_sw:\"zzzz xxxx\"~2^22.0')]"
+ "//str[@name='parsedquery'][contains(.,'(phrase_sw:\"zzzz xxxx\"~2)^22.0')]"
);
assertQ("phrase field queries spanning multiple fields should be within their own dismax queries",
Modified: lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestSolrQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestSolrQueryParser.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestSolrQueryParser.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestSolrQueryParser.java Thu Oct 15 10:25:39 2015
@@ -155,14 +155,14 @@ public class TestSolrQueryParser extends
assertJQ(req("fq","id:1", "fl","id,score", "q", subqq+"^3", "qq","text:x^2"
, "debug","query"
)
- ,"/debug/parsedquery_toString=='(text:x^2.0)^3.0'"
+ ,"/debug/parsedquery_toString=='((text:x)^2.0)^3.0'"
);
// boost should multiply
assertJQ(req("fq","id:1", "fl","id,score", "q", " {!v=$qq}^3", "qq","text:x^2"
, "debug","query"
)
- ,"/debug/parsedquery_toString=='(text:x^2.0)^3.0'"
+ ,"/debug/parsedquery_toString=='((text:x)^2.0)^3.0'"
);
}
Modified: lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestSort.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestSort.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/search/TestSort.java Thu Oct 15 10:25:39 2015
@@ -34,15 +34,12 @@ import org.apache.lucene.index.Directory
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.LeafReaderContext;
-import org.apache.lucene.search.BitsFilteredDocIdSet;
import org.apache.lucene.search.Collector;
import org.apache.lucene.search.DocIdSet;
-import org.apache.lucene.search.Filter;
import org.apache.lucene.search.FilterCollector;
import org.apache.lucene.search.FilterLeafCollector;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.LeafCollector;
-import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
Modified: lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/update/AddBlockUpdateTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/update/AddBlockUpdateTest.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/update/AddBlockUpdateTest.java (original)
+++ lucene/dev/branches/lucene6825/solr/core/src/test/org/apache/solr/update/AddBlockUpdateTest.java Thu Oct 15 10:25:39 2015
@@ -39,7 +39,6 @@ import javax.xml.stream.XMLStreamReader;
import org.apache.commons.io.output.ByteArrayOutputStream;
import org.apache.lucene.index.Term;
-import org.apache.lucene.search.QueryWrapperFilter;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TermRangeQuery;
import org.apache.lucene.search.TopDocs;
@@ -53,6 +52,7 @@ import org.apache.solr.common.SolrInputD
import org.apache.solr.common.util.ExecutorUtil;
import org.apache.solr.common.util.JavaBinCodec;
import org.apache.solr.handler.loader.XMLLoader;
+import org.apache.solr.search.QueryWrapperFilter;
import org.apache.solr.search.SolrIndexSearcher;
import org.apache.solr.util.DefaultSolrThreadFactory;
import org.apache.solr.util.RefCounted;
@@ -562,8 +562,8 @@ public class AddBlockUpdateTest extends
protected ToParentBlockJoinQuery join(final String childTerm) {
return new ToParentBlockJoinQuery(
- new TermQuery(new Term(child, childTerm)), new QueryBitSetProducer(new QueryWrapperFilter(
- new TermRangeQuery(parent, null, null, false, false))), ScoreMode.None);
+ new TermQuery(new Term(child, childTerm)), new QueryBitSetProducer(
+ new TermRangeQuery(parent, null, null, false, false)), ScoreMode.None);
}
private Collection<? extends Callable<Void>> callables(List<Document> blocks) {
Modified: lucene/dev/branches/lucene6825/solr/solrj/src/java/org/apache/solr/client/solrj/io/Tuple.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/solrj/src/java/org/apache/solr/client/solrj/io/Tuple.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/solrj/src/java/org/apache/solr/client/solrj/io/Tuple.java (original)
+++ lucene/dev/branches/lucene6825/solr/solrj/src/java/org/apache/solr/client/solrj/io/Tuple.java Thu Oct 15 10:25:39 2015
@@ -63,6 +63,10 @@ public class Tuple implements Cloneable
this.fields.put(key, value);
}
+ public void remove(Object key) {
+ this.fields.remove(key);
+ }
+
public String getString(Object key) {
return this.fields.get(key).toString();
}
Modified: lucene/dev/branches/lucene6825/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6825/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java?rev=1708778&r1=1708777&r2=1708778&view=diff
==============================================================================
--- lucene/dev/branches/lucene6825/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java (original)
+++ lucene/dev/branches/lucene6825/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/StatementImpl.java Thu Oct 15 10:25:39 2015
@@ -99,7 +99,7 @@ class StatementImpl implements Statement
Collections.shuffle(shuffler, new Random());
params.put(CommonParams.QT, "/sql");
- params.put("sql", sql);
+ params.put("stmt", sql);
params.putAll(properties);
Replica rep = shuffler.get(0);