[TEST] inner_hits is now parsed on the coord node, no need to skip such objects in testUnknownObjectException
This commit is contained in:
parent
57b90cb6ce
commit
f221b0ce52
|
@ -20,7 +20,6 @@
|
||||||
package org.elasticsearch.index.query;
|
package org.elasticsearch.index.query;
|
||||||
|
|
||||||
import com.carrotsearch.randomizedtesting.generators.RandomPicks;
|
import com.carrotsearch.randomizedtesting.generators.RandomPicks;
|
||||||
import com.fasterxml.jackson.core.JsonParseException;
|
|
||||||
import org.apache.lucene.queries.TermsQuery;
|
import org.apache.lucene.queries.TermsQuery;
|
||||||
import org.apache.lucene.search.BooleanClause;
|
import org.apache.lucene.search.BooleanClause;
|
||||||
import org.apache.lucene.search.BooleanQuery;
|
import org.apache.lucene.search.BooleanQuery;
|
||||||
|
@ -32,10 +31,8 @@ import org.apache.lucene.search.join.ScoreMode;
|
||||||
import org.apache.lucene.search.similarities.PerFieldSimilarityWrapper;
|
import org.apache.lucene.search.similarities.PerFieldSimilarityWrapper;
|
||||||
import org.apache.lucene.search.similarities.Similarity;
|
import org.apache.lucene.search.similarities.Similarity;
|
||||||
import org.apache.lucene.util.BytesRef;
|
import org.apache.lucene.util.BytesRef;
|
||||||
import org.elasticsearch.ElasticsearchParseException;
|
|
||||||
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
|
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
|
||||||
import org.elasticsearch.common.ParseFieldMatcher;
|
import org.elasticsearch.common.ParseFieldMatcher;
|
||||||
import org.elasticsearch.common.ParsingException;
|
|
||||||
import org.elasticsearch.common.compress.CompressedXContent;
|
import org.elasticsearch.common.compress.CompressedXContent;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.common.xcontent.XContentFactory;
|
import org.elasticsearch.common.xcontent.XContentFactory;
|
||||||
|
@ -288,35 +285,6 @@ public class HasChildQueryBuilderTests extends AbstractQueryTestCase<HasChildQue
|
||||||
assertEquals(new TypeFieldMapper.TypeQuery(new BytesRef(type)), booleanQuery.clauses().get(1).getQuery());
|
assertEquals(new TypeFieldMapper.TypeQuery(new BytesRef(type)), booleanQuery.clauses().get(1).getQuery());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* override superclass test, because here we need to take care that mutation doesn't happen inside
|
|
||||||
* `inner_hits` structure, because we don't parse them yet and so no exception will be triggered
|
|
||||||
* for any mutation there.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void testUnknownObjectException() throws IOException {
|
|
||||||
String validQuery = createTestQueryBuilder().toString();
|
|
||||||
assertThat(validQuery, containsString("{"));
|
|
||||||
int endPosition = validQuery.indexOf("inner_hits");
|
|
||||||
if (endPosition == -1) {
|
|
||||||
endPosition = validQuery.length() - 1;
|
|
||||||
}
|
|
||||||
for (int insertionPosition = 0; insertionPosition < endPosition; insertionPosition++) {
|
|
||||||
if (validQuery.charAt(insertionPosition) == '{') {
|
|
||||||
String testQuery = validQuery.substring(0, insertionPosition) + "{ \"newField\" : " + validQuery.substring(insertionPosition) + "}";
|
|
||||||
try {
|
|
||||||
parseQuery(testQuery);
|
|
||||||
fail("some parsing exception expected for query: " + testQuery);
|
|
||||||
} catch (ParsingException | ElasticsearchParseException e) {
|
|
||||||
// different kinds of exception wordings depending on location
|
|
||||||
// of mutation, so no simple asserts possible here
|
|
||||||
} catch (JsonParseException e) {
|
|
||||||
// mutation produced invalid json
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void testMustRewrite() throws IOException {
|
public void testMustRewrite() throws IOException {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -19,15 +19,11 @@
|
||||||
|
|
||||||
package org.elasticsearch.index.query;
|
package org.elasticsearch.index.query;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonParseException;
|
|
||||||
|
|
||||||
import org.apache.lucene.search.MatchNoDocsQuery;
|
import org.apache.lucene.search.MatchNoDocsQuery;
|
||||||
import org.apache.lucene.search.Query;
|
import org.apache.lucene.search.Query;
|
||||||
import org.apache.lucene.search.join.ScoreMode;
|
import org.apache.lucene.search.join.ScoreMode;
|
||||||
import org.elasticsearch.ElasticsearchParseException;
|
|
||||||
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
|
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
|
||||||
import org.elasticsearch.common.ParseFieldMatcher;
|
import org.elasticsearch.common.ParseFieldMatcher;
|
||||||
import org.elasticsearch.common.ParsingException;
|
|
||||||
import org.elasticsearch.common.compress.CompressedXContent;
|
import org.elasticsearch.common.compress.CompressedXContent;
|
||||||
import org.elasticsearch.common.xcontent.ToXContent;
|
import org.elasticsearch.common.xcontent.ToXContent;
|
||||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
|
@ -176,35 +172,6 @@ public class HasParentQueryBuilderTests extends AbstractQueryTestCase<HasParentQ
|
||||||
HasChildQueryBuilderTests.assertLateParsingQuery(query, PARENT_TYPE, "id");
|
HasChildQueryBuilderTests.assertLateParsingQuery(query, PARENT_TYPE, "id");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* override superclass test, because here we need to take care that mutation doesn't happen inside
|
|
||||||
* `inner_hits` structure, because we don't parse them yet and so no exception will be triggered
|
|
||||||
* for any mutation there.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void testUnknownObjectException() throws IOException {
|
|
||||||
String validQuery = createTestQueryBuilder().toString();
|
|
||||||
assertThat(validQuery, containsString("{"));
|
|
||||||
int endPosition = validQuery.indexOf("inner_hits");
|
|
||||||
if (endPosition == -1) {
|
|
||||||
endPosition = validQuery.length() - 1;
|
|
||||||
}
|
|
||||||
for (int insertionPosition = 0; insertionPosition < endPosition; insertionPosition++) {
|
|
||||||
if (validQuery.charAt(insertionPosition) == '{') {
|
|
||||||
String testQuery = validQuery.substring(0, insertionPosition) + "{ \"newField\" : " + validQuery.substring(insertionPosition) + "}";
|
|
||||||
try {
|
|
||||||
parseQuery(testQuery);
|
|
||||||
fail("some parsing exception expected for query: " + testQuery);
|
|
||||||
} catch (ParsingException | ElasticsearchParseException e) {
|
|
||||||
// different kinds of exception wordings depending on location
|
|
||||||
// of mutation, so no simple asserts possible here
|
|
||||||
} catch (JsonParseException e) {
|
|
||||||
// mutation produced invalid json
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void testMustRewrite() throws IOException {
|
public void testMustRewrite() throws IOException {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -20,18 +20,13 @@
|
||||||
package org.elasticsearch.index.query;
|
package org.elasticsearch.index.query;
|
||||||
|
|
||||||
import com.carrotsearch.randomizedtesting.generators.RandomPicks;
|
import com.carrotsearch.randomizedtesting.generators.RandomPicks;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonParseException;
|
|
||||||
import org.apache.lucene.search.MatchNoDocsQuery;
|
import org.apache.lucene.search.MatchNoDocsQuery;
|
||||||
import org.apache.lucene.search.Query;
|
import org.apache.lucene.search.Query;
|
||||||
import org.apache.lucene.search.join.ScoreMode;
|
import org.apache.lucene.search.join.ScoreMode;
|
||||||
import org.apache.lucene.search.join.ToParentBlockJoinQuery;
|
import org.apache.lucene.search.join.ToParentBlockJoinQuery;
|
||||||
import org.elasticsearch.ElasticsearchParseException;
|
|
||||||
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
|
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
|
||||||
import org.elasticsearch.common.ParsingException;
|
|
||||||
import org.elasticsearch.common.compress.CompressedXContent;
|
import org.elasticsearch.common.compress.CompressedXContent;
|
||||||
import org.elasticsearch.index.mapper.MapperService;
|
import org.elasticsearch.index.mapper.MapperService;
|
||||||
import org.elasticsearch.script.Script;
|
|
||||||
import org.elasticsearch.search.fetch.innerhits.InnerHitsContext;
|
import org.elasticsearch.search.fetch.innerhits.InnerHitsContext;
|
||||||
import org.elasticsearch.search.internal.SearchContext;
|
import org.elasticsearch.search.internal.SearchContext;
|
||||||
import org.elasticsearch.search.sort.FieldSortBuilder;
|
import org.elasticsearch.search.sort.FieldSortBuilder;
|
||||||
|
@ -176,36 +171,6 @@ public class NestedQueryBuilderTests extends AbstractQueryTestCase<NestedQueryBu
|
||||||
assertEquals(json, ScoreMode.Avg, parsed.scoreMode());
|
assertEquals(json, ScoreMode.Avg, parsed.scoreMode());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* override superclass test, because here we need to take care that mutation doesn't happen inside
|
|
||||||
* `inner_hits` structure, because we don't parse them yet and so no exception will be triggered
|
|
||||||
* for any mutation there.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void testUnknownObjectException() throws IOException {
|
|
||||||
String validQuery = createTestQueryBuilder().toString();
|
|
||||||
assertThat(validQuery, containsString("{"));
|
|
||||||
int endPosition = validQuery.indexOf("inner_hits");
|
|
||||||
if (endPosition == -1) {
|
|
||||||
endPosition = validQuery.length() - 1;
|
|
||||||
}
|
|
||||||
for (int insertionPosition = 0; insertionPosition < endPosition; insertionPosition++) {
|
|
||||||
if (validQuery.charAt(insertionPosition) == '{') {
|
|
||||||
String testQuery = validQuery.substring(0, insertionPosition) + "{ \"newField\" : " +
|
|
||||||
validQuery.substring(insertionPosition) + "}";
|
|
||||||
try {
|
|
||||||
parseQuery(testQuery);
|
|
||||||
fail("some parsing exception expected for query: " + testQuery);
|
|
||||||
} catch (ParsingException | ElasticsearchParseException e) {
|
|
||||||
// different kinds of exception wordings depending on location
|
|
||||||
// of mutation, so no simple asserts possible here
|
|
||||||
} catch (JsonParseException e) {
|
|
||||||
// mutation produced invalid json
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void testMustRewrite() throws IOException {
|
public void testMustRewrite() throws IOException {
|
||||||
try {
|
try {
|
||||||
|
|
Loading…
Reference in New Issue