Skip to content

Commit 898fc70

Browse files
authored
Unmute testSupportedFieldTypes, fix Percentiles/Ranks/Terms tests (#52734)
Also fixes Percentiles which was incorrectly specified to only accept numeric, but in fact also accepts Boolean and Date (because those are numeric on master - thanks `testSupportedFieldTypes` for catching it!)
1 parent 678164b commit 898fc70

File tree

7 files changed

+27
-20
lines changed

7 files changed

+27
-20
lines changed

server/src/main/java/org/elasticsearch/search/aggregations/metrics/PercentilesAggregatorFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class PercentilesAggregatorFactory extends ValuesSourceAggregatorFactory {
5050

5151
static void registerAggregators(ValuesSourceRegistry valuesSourceRegistry) {
5252
valuesSourceRegistry.register(PercentilesAggregationBuilder.NAME,
53-
List.of(CoreValuesSourceType.NUMERIC, CoreValuesSourceType.HISTOGRAM),
53+
List.of(CoreValuesSourceType.NUMERIC, CoreValuesSourceType.HISTOGRAM, CoreValuesSourceType.DATE, CoreValuesSourceType.BOOLEAN),
5454
new PercentilesAggregatorSupplier() {
5555
@Override
5656
public Aggregator build(String name, ValuesSource valuesSource, SearchContext context, Aggregator parent,

server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregatorTests.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,10 @@ protected AggregationBuilder createAggBuilderForTypeTest(MappedFieldType fieldTy
132132
@Override
133133
protected List<ValuesSourceType> getSupportedValuesSourceTypes() {
134134
return List.of(CoreValuesSourceType.NUMERIC,
135-
CoreValuesSourceType.BYTES);
135+
CoreValuesSourceType.BYTES,
136+
CoreValuesSourceType.IP,
137+
CoreValuesSourceType.DATE,
138+
CoreValuesSourceType.BOOLEAN);
136139
}
137140

138141
public void testGlobalOrdinalsExecutionHint() throws Exception {

server/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentileRanksAggregatorTests.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ protected AggregationBuilder createAggBuilderForTypeTest(MappedFieldType fieldTy
5353

5454
@Override
5555
protected List<ValuesSourceType> getSupportedValuesSourceTypes() {
56-
return List.of(CoreValuesSourceType.NUMERIC);
56+
return List.of(CoreValuesSourceType.NUMERIC,
57+
CoreValuesSourceType.DATE,
58+
CoreValuesSourceType.BOOLEAN);
5759
}
5860

5961
public void testEmpty() throws IOException {

server/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentilesAggregatorTests.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,10 @@ protected AggregationBuilder createAggBuilderForTypeTest(MappedFieldType fieldTy
6666

6767
@Override
6868
protected List<ValuesSourceType> getSupportedValuesSourceTypes() {
69-
return List.of(CoreValuesSourceType.NUMERIC);
69+
return List.of(CoreValuesSourceType.NUMERIC,
70+
CoreValuesSourceType.DATE,
71+
CoreValuesSourceType.BOOLEAN,
72+
CoreValuesSourceType.HISTOGRAM);
7073
}
7174

7275
public void testNoDocs() throws IOException {

server/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentileRanksAggregatorTests.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ protected AggregationBuilder createAggBuilderForTypeTest(MappedFieldType fieldTy
5353

5454
@Override
5555
protected List<ValuesSourceType> getSupportedValuesSourceTypes() {
56-
return List.of(CoreValuesSourceType.NUMERIC);
56+
return List.of(CoreValuesSourceType.NUMERIC,
57+
CoreValuesSourceType.DATE,
58+
CoreValuesSourceType.BOOLEAN);
5759
}
5860

5961
public void testEmpty() throws IOException {

server/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentilesAggregatorTests.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,10 @@ protected AggregationBuilder createAggBuilderForTypeTest(MappedFieldType fieldTy
5959

6060
@Override
6161
protected List<ValuesSourceType> getSupportedValuesSourceTypes() {
62-
return List.of(CoreValuesSourceType.NUMERIC);
62+
return List.of(CoreValuesSourceType.NUMERIC,
63+
CoreValuesSourceType.DATE,
64+
CoreValuesSourceType.BOOLEAN,
65+
CoreValuesSourceType.HISTOGRAM);
6366
}
6467

6568
public void testNoDocs() throws IOException {

test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,12 @@
6363
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
6464
import org.elasticsearch.index.fielddata.IndexFieldDataService;
6565
import org.elasticsearch.index.mapper.BinaryFieldMapper;
66-
import org.elasticsearch.index.mapper.BooleanFieldMapper;
6766
import org.elasticsearch.index.mapper.CompletionFieldMapper;
6867
import org.elasticsearch.index.mapper.ContentPath;
69-
import org.elasticsearch.index.mapper.DateFieldMapper;
7068
import org.elasticsearch.index.mapper.DocumentMapper;
7169
import org.elasticsearch.index.mapper.FieldAliasMapper;
7270
import org.elasticsearch.index.mapper.FieldMapper;
7371
import org.elasticsearch.index.mapper.GeoShapeFieldMapper;
74-
import org.elasticsearch.index.mapper.IpFieldMapper;
7572
import org.elasticsearch.index.mapper.MappedFieldType;
7673
import org.elasticsearch.index.mapper.Mapper;
7774
import org.elasticsearch.index.mapper.Mapper.BuilderContext;
@@ -617,7 +614,6 @@ protected AggregationBuilder createAggBuilderForTypeTest(MappedFieldType fieldTy
617614
*
618615
* Exception types/messages are not currently checked, just presence/absence of an exception.
619616
*/
620-
@AwaitsFix(bugUrl = "Muted until we can tweak Date/IP/Boolean")
621617
public final void testSupportedFieldTypes() throws IOException {
622618
MapperRegistry mapperRegistry = new IndicesModule(Collections.emptyList()).getMapperRegistry();
623619
Settings settings = Settings.builder().put("index.version.created", Version.CURRENT.id).build();
@@ -689,12 +685,7 @@ private void writeTestDoc(MappedFieldType fieldType, String fieldName, RandomInd
689685
ValuesSourceType vst = fieldType.getValuesSourceType();
690686

691687
if (vst.equals(CoreValuesSourceType.NUMERIC)) {
692-
// TODO note: once VS refactor adds DATE/BOOLEAN, this conditional will go away
693-
if (typeName.equals(DateFieldMapper.CONTENT_TYPE) || typeName.equals(DateFieldMapper.DATE_NANOS_CONTENT_TYPE)) {
694-
iw.addDocument(singleton(new SortedNumericDocValuesField(fieldName, randomNonNegativeLong())));
695-
} else if (typeName.equals(BooleanFieldMapper.CONTENT_TYPE)) {
696-
iw.addDocument(singleton(new SortedNumericDocValuesField(fieldName, randomBoolean() ? 0 : 1)));
697-
} else if (typeName.equals(NumberFieldMapper.NumberType.DOUBLE.typeName())) {
688+
if (typeName.equals(NumberFieldMapper.NumberType.DOUBLE.typeName())) {
698689
long encoded = NumericUtils.doubleToSortableLong(Math.abs(randomDouble()));
699690
iw.addDocument(singleton(new SortedNumericDocValuesField(fieldName, encoded)));
700691
} else if (typeName.equals(NumberFieldMapper.NumberType.FLOAT.typeName())) {
@@ -709,13 +700,16 @@ private void writeTestDoc(MappedFieldType fieldType, String fieldName, RandomInd
709700
} else if (vst.equals(CoreValuesSourceType.BYTES)) {
710701
if (typeName.equals(BinaryFieldMapper.CONTENT_TYPE)) {
711702
iw.addDocument(singleton(new BinaryFieldMapper.CustomBinaryDocValuesField(fieldName, new BytesRef("a").bytes)));
712-
} else if (typeName.equals(IpFieldMapper.CONTENT_TYPE)) {
713-
// TODO note: once VS refactor adds IP, this conditional will go away
714-
boolean v4 = randomBoolean();
715-
iw.addDocument(singleton(new SortedSetDocValuesField(fieldName, new BytesRef(InetAddressPoint.encode(randomIp(v4))))));
716703
} else {
717704
iw.addDocument(singleton(new SortedSetDocValuesField(fieldName, new BytesRef("a"))));
718705
}
706+
} else if (vst.equals(CoreValuesSourceType.DATE)) {
707+
iw.addDocument(singleton(new SortedNumericDocValuesField(fieldName, randomNonNegativeLong())));
708+
} else if (vst.equals(CoreValuesSourceType.BOOLEAN)) {
709+
iw.addDocument(singleton(new SortedNumericDocValuesField(fieldName, randomBoolean() ? 0 : 1)));
710+
} else if (vst.equals(CoreValuesSourceType.IP)) {
711+
boolean v4 = randomBoolean();
712+
iw.addDocument(singleton(new SortedSetDocValuesField(fieldName, new BytesRef(InetAddressPoint.encode(randomIp(v4))))));
719713
} else if (vst.equals(CoreValuesSourceType.RANGE)) {
720714
Object start;
721715
Object end;

0 commit comments

Comments
 (0)