From 66c4f47ea6df8a99654b5baab89f3dc796e9fd87 Mon Sep 17 00:00:00 2001 From: Mark Tozzi Date: Tue, 14 Jan 2020 10:53:53 -0500 Subject: [PATCH 1/6] Remove unused script param from defaultValuesSourceType --- .../histogram/DateHistogramAggregationBuilder.java | 5 ++--- .../bucket/histogram/HistogramAggregationBuilder.java | 3 +-- .../bucket/range/AbstractRangeBuilder.java | 3 +-- .../bucket/range/DateRangeAggregationBuilder.java | 3 +-- .../bucket/range/IpRangeAggregationBuilder.java | 2 +- .../aggregations/metrics/AvgAggregationBuilder.java | 3 +-- .../metrics/ExtendedStatsAggregationBuilder.java | 3 +-- .../metrics/GeoBoundsAggregationBuilder.java | 3 +-- .../aggregations/metrics/MaxAggregationBuilder.java | 3 +-- .../MedianAbsoluteDeviationAggregationBuilder.java | 3 +-- .../aggregations/metrics/MinAggregationBuilder.java | 3 +-- .../metrics/PercentileRanksAggregationBuilder.java | 3 +-- .../metrics/PercentilesAggregationBuilder.java | 3 +-- .../aggregations/metrics/StatsAggregationBuilder.java | 3 +-- .../aggregations/metrics/SumAggregationBuilder.java | 3 +-- .../support/ValuesSourceAggregationBuilder.java | 5 ++--- .../aggregations/support/ValuesSourceConfig.java | 11 +++++------ .../aggregations/support/ValuesSourceRegistry.java | 7 +++---- 18 files changed, 26 insertions(+), 43 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java index 043b257bc60f6..b2cce5afa0149 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java @@ -37,7 +37,6 @@ import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.MappedFieldType.Relation; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -160,7 +159,7 @@ public DateHistogramAggregationBuilder(StreamInput in) throws IOException { } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.DATE; } @@ -283,7 +282,7 @@ public DateHistogramAggregationBuilder offset(String offset) { } /** - * Parse the string specification of an offset. + * Parse the string specification of an offset. */ public static long parseStringOffset(String offset) { if (offset.charAt(0) == '-') { diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java index fde32856e4c13..c84dfb803c327 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -105,7 +104,7 @@ public static void registerAggregators(ValuesSourceRegistry valuesSourceRegistry private long minDocCount = 0; @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.NUMERIC; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/AbstractRangeBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/AbstractRangeBuilder.java index e6b747bfddedc..4e8e2acaf88fe 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/AbstractRangeBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/AbstractRangeBuilder.java @@ -24,7 +24,6 @@ import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.bucket.MultiBucketAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range; @@ -70,7 +69,7 @@ protected AbstractRangeBuilder(StreamInput in, InternalRange.Factory range } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { // Copied over from the old targetValueType setting. Not sure what cases this is still relevant for. --Tozzi 2020-01-13 return rangeFactory.getValueSourceType(); } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/DateRangeAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/DateRangeAggregationBuilder.java index fd397ed256836..0aa2c5116d50f 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/DateRangeAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/DateRangeAggregationBuilder.java @@ -23,7 +23,6 @@ import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.Script; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; @@ -87,7 +86,7 @@ public String getType() { } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.DATE; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/IpRangeAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/IpRangeAggregationBuilder.java index 81c2716564bca..6a5d6aeb963db 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/IpRangeAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/IpRangeAggregationBuilder.java @@ -345,7 +345,7 @@ public IpRangeAggregationBuilder(StreamInput in) throws IOException { } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.IP; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/AvgAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/AvgAggregationBuilder.java index 5b7dc206434a6..ce7312385e8cf 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/AvgAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/AvgAggregationBuilder.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -60,7 +59,7 @@ public AvgAggregationBuilder(AvgAggregationBuilder clone, Builder factoriesBuild } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.NUMERIC; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsAggregationBuilder.java index caef1bfdbda46..960c6f940e83d 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsAggregationBuilder.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -81,7 +80,7 @@ public ExtendedStatsAggregationBuilder(StreamInput in) throws IOException { } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.NUMERIC; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/GeoBoundsAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/GeoBoundsAggregationBuilder.java index 63fe18eac46ab..f77d802f1b469 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/GeoBoundsAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/GeoBoundsAggregationBuilder.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -83,7 +82,7 @@ protected void innerWriteTo(StreamOutput out) throws IOException { } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.GEOPOINT; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/MaxAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/MaxAggregationBuilder.java index c9713aa40a536..d32bbf96c450c 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/MaxAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/MaxAggregationBuilder.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -61,7 +60,7 @@ protected MaxAggregationBuilder(MaxAggregationBuilder clone, Builder factoriesBu } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.NUMERIC; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/MedianAbsoluteDeviationAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/MedianAbsoluteDeviationAggregationBuilder.java index c11a0847add83..6efb8097ad805 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/MedianAbsoluteDeviationAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/MedianAbsoluteDeviationAggregationBuilder.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -103,7 +102,7 @@ protected AggregationBuilder shallowCopy(AggregatorFactories.Builder factoriesBu } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.NUMERIC; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/MinAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/MinAggregationBuilder.java index 63ccd32990342..4a6662afa9337 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/MinAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/MinAggregationBuilder.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -73,7 +72,7 @@ public MinAggregationBuilder(StreamInput in) throws IOException { } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.NUMERIC; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/PercentileRanksAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/PercentileRanksAggregationBuilder.java index 1595a9c0ba68e..d1f927ecfe501 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/PercentileRanksAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/PercentileRanksAggregationBuilder.java @@ -27,7 +27,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -156,7 +155,7 @@ public PercentileRanksAggregationBuilder(StreamInput in) throws IOException { } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.NUMERIC; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/PercentilesAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/PercentilesAggregationBuilder.java index b9d347de0e632..cbad8c8625f55 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/PercentilesAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/PercentilesAggregationBuilder.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -163,7 +162,7 @@ public PercentilesAggregationBuilder(StreamInput in) throws IOException { } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.NUMERIC; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/StatsAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/StatsAggregationBuilder.java index 29ea490e89d7b..f3b842ed9195d 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/StatsAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/StatsAggregationBuilder.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -74,7 +73,7 @@ public StatsAggregationBuilder(StreamInput in) throws IOException { } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.NUMERIC; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/SumAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/SumAggregationBuilder.java index 5892fcd0ecd42..0929ffa586306 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/SumAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/SumAggregationBuilder.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; @@ -73,7 +72,7 @@ public SumAggregationBuilder(StreamInput in) throws IOException { } @Override - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.NUMERIC; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java index 5195b876e2dd6..fcae9972c1e4e 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java @@ -289,16 +289,15 @@ protected final ValuesSourceAggregatorFactory doBuild(QueryShardContext querySha * Provide a hook for aggregations to have finer grained control of the {@link ValuesSourceType } when {@link ValuesSourceConfig} * can't resolve a type (i.e. this will be called before falling back to CoreValuesSourceType.ANY.) * - * @param script - The user supplied script * @return The CoreValuesSourceType we expect this script to yield. */ - protected ValuesSourceType defaultValueSourceType(Script script) { + protected ValuesSourceType defaultValueSourceType() { return CoreValuesSourceType.BYTES; } protected ValuesSourceConfig resolveConfig(QueryShardContext queryShardContext) { return ValuesSourceConfig.resolve(queryShardContext, - this.userValueTypeHint, field, script, missing, timeZone, format, this::defaultValueSourceType, this.getType()); + this.userValueTypeHint, field, script, missing, timeZone, format, this.defaultValueSourceType(), this.getType()); } protected abstract ValuesSourceAggregatorFactory innerBuild(QueryShardContext queryShardContext, diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java index 1fcd26ff195bf..32971b9e12c51 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java @@ -27,7 +27,6 @@ import org.elasticsearch.search.DocValueFormat; import java.time.ZoneId; -import java.util.function.Function; /** * A configuration that tells aggregations how to retrieve data from the index @@ -45,7 +44,7 @@ public static ValuesSourceConfig resolve( Object missing, ZoneId timeZone, String format, String aggregationName) { - return resolve(context, valueType, field, script, missing, timeZone, format, s -> CoreValuesSourceType.BYTES, aggregationName); + return resolve(context, valueType, field, script, missing, timeZone, format, CoreValuesSourceType.BYTES, aggregationName); } /** @@ -60,7 +59,7 @@ public static ValuesSourceConfig resolve( * @param timeZone - Used to generate a format for dates * @param format - The format string to apply to this field. Confusingly, this is used for input parsing as well as output formatting * See https://github.com/elastic/elasticsearch/issues/47469 - * @param defaultValueSourceType - TODO: Get rid of this. + * @param defaultValueSourceType - per-aggregation {@link ValuesSource} of last resort. * @param aggregationName - Name of the aggregation, generally from the aggregation builder. This is used as a lookup key in the * {@link ValuesSourceRegistry} * @return - An initialized {@link ValuesSourceConfig} that will yield the appropriate {@link ValuesSourceType} @@ -72,7 +71,7 @@ public static ValuesSourceConfig resolve( Object missing, ZoneId timeZone, String format, - Function defaultValueSourceType, + ValuesSourceType defaultValueSourceType, String aggregationName) { ValuesSourceConfig config; MappedFieldType fieldType = null; @@ -91,7 +90,7 @@ public static ValuesSourceConfig resolve( if (userValueTypeHint != null) { valuesSourceType = userValueTypeHint.getValuesSourceType(); } else { - valuesSourceType = defaultValueSourceType.apply(script); + valuesSourceType = defaultValueSourceType; } config = new ValuesSourceConfig(valuesSourceType); config.script(createScript(script, context)); @@ -109,7 +108,7 @@ public static ValuesSourceConfig resolve( if (userValueTypeHint != null) { valuesSourceType = userValueTypeHint.getValuesSourceType(); } else { - valuesSourceType = defaultValueSourceType.apply(script); + valuesSourceType = defaultValueSourceType; } config = new ValuesSourceConfig(valuesSourceType); // TODO: PLAN - get rid of the unmapped flag field; it's only used by valid(), and we're intending to get rid of that. diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java index ba5ee2587ab92..90b313c2f44b3 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java @@ -32,7 +32,6 @@ import java.util.Map; import java.util.StringJoiner; import java.util.function.BiFunction; -import java.util.function.Function; /* This is a _very_ crude prototype for the ValuesSourceRegistry which basically hard-codes everything. The intent is to define the API @@ -109,7 +108,7 @@ public AggregatorSupplier getAggregator(ValuesSourceType valuesSourceType, Strin @Override public ValuesSourceType getValuesSourceType(MappedFieldType fieldType, IndexFieldData indexFieldData, String aggregationName, ValueType valueType, Script script, - Function defaultValuesSourceType) { + ValuesSourceType defaultValuesSourceType) { if (aggregationName != null && resolverRegistry.containsKey(aggregationName)) { List, ValuesSourceType>> resolverList = resolverRegistry.get(aggregationName); @@ -135,7 +134,7 @@ public ValuesSourceType getValuesSourceType(MappedFieldType fieldType, IndexFiel return CoreValuesSourceType.HISTOGRAM; } else { if (valueType == null) { - return defaultValuesSourceType.apply(script); + return defaultValuesSourceType; } else { return valueType.getValuesSourceType(); } @@ -161,7 +160,7 @@ public abstract void register(String aggregationName, ValuesSourceType valuesSou // TODO: ValueType argument is only needed for legacy logic public abstract ValuesSourceType getValuesSourceType(MappedFieldType fieldType, IndexFieldData indexFieldData, String aggregationName, ValueType valueType, Script script, - Function defaultValuesSourceType); + ValuesSourceType defaultValuesSourceType); public static ValuesSourceRegistry getInstance() {return INSTANCE;} From 69f9018b6769abc513c40a23d69a9f4f568c22a4 Mon Sep 17 00:00:00 2001 From: Mark Tozzi Date: Tue, 14 Jan 2020 11:17:16 -0500 Subject: [PATCH 2/6] Make defaultValuesSourceType abstract --- .../bucket/geogrid/GeoHashGridAggregationBuilder.java | 8 ++++++++ .../bucket/geogrid/GeoTileGridAggregationBuilder.java | 8 ++++++++ .../histogram/AutoDateHistogramAggregationBuilder.java | 8 ++++++++ .../bucket/missing/MissingAggregationBuilder.java | 7 +++++++ .../bucket/range/GeoDistanceAggregationBuilder.java | 10 +++++++++- .../bucket/sampler/DiversifiedAggregationBuilder.java | 7 +++++++ .../SignificantTermsAggregationBuilder.java | 7 +++++++ .../bucket/terms/RareTermsAggregationBuilder.java | 7 +++++++ .../bucket/terms/TermsAggregationBuilder.java | 7 +++++++ .../metrics/CardinalityAggregationBuilder.java | 7 +++++++ .../metrics/GeoCentroidAggregationBuilder.java | 8 ++++++++ .../metrics/ValueCountAggregationBuilder.java | 7 +++++++ .../support/ValuesSourceAggregationBuilder.java | 4 +--- .../org/elasticsearch/search/SearchModuleTests.java | 7 +++++++ 14 files changed, 98 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridAggregationBuilder.java index 65a711cf25234..2dd8a4b10a687 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridAggregationBuilder.java @@ -27,8 +27,10 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -51,6 +53,12 @@ public GeoHashGridAggregationBuilder(StreamInput in) throws IOException { super(in); } + @Override + protected ValuesSourceType defaultValueSourceType() { + // TODO: This should probably not be BYTES, but we're not failing tests with BYTES, so needs more tests? + return CoreValuesSourceType.BYTES; + } + @Override public GeoGridAggregationBuilder precision(int precision) { this.precision = GeoUtils.checkPrecisionRange(precision); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridAggregationBuilder.java index 5506a504fd917..7d0f851a73dbd 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridAggregationBuilder.java @@ -26,8 +26,10 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -50,6 +52,12 @@ public GeoTileGridAggregationBuilder(StreamInput in) throws IOException { super(in); } + @Override + protected ValuesSourceType defaultValueSourceType() { + // TODO: This should probably not be BYTES, but we're not failing tests with BYTES, so needs more tests? + return CoreValuesSourceType.BYTES; + } + @Override public GeoGridAggregationBuilder precision(int precision) { this.precision = GeoTileUtils.checkPrecisionRange(precision); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilder.java index 347e394cc67a1..8acb50d78a99e 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilder.java @@ -34,10 +34,12 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.MultiBucketConsumerService; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.time.ZoneId; @@ -149,6 +151,12 @@ protected AutoDateHistogramAggregationBuilder(AutoDateHistogramAggregationBuilde this.minimumIntervalExpression = clone.minimumIntervalExpression; } + @Override + protected ValuesSourceType defaultValueSourceType() { + // TODO: This should probably be DATE, but we're not failing tests with BYTES, so needs more tests? + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map metaData) { return new AutoDateHistogramAggregationBuilder(this, factoriesBuilder, metaData); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java index 3d2c20815399f..7300f0becf440 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java @@ -29,10 +29,12 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -58,6 +60,11 @@ protected MissingAggregationBuilder(MissingAggregationBuilder clone, Builder fac super(clone, factoriesBuilder, metaData); } + @Override + protected ValuesSourceType defaultValueSourceType() { + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map metaData) { return new MissingAggregationBuilder(this, factoriesBuilder, metaData); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/GeoDistanceAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/GeoDistanceAggregationBuilder.java index 3b5d829ef73b2..a3a3779594b77 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/GeoDistanceAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/GeoDistanceAggregationBuilder.java @@ -35,10 +35,12 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.ArrayList; @@ -233,7 +235,6 @@ private GeoDistanceAggregationBuilder(String name, GeoPoint origin, this.origin = origin; } - // TODO: this should set defaultValuesSourceType to GEOPOINT /** * Read from a stream. @@ -265,6 +266,13 @@ protected GeoDistanceAggregationBuilder(GeoDistanceAggregationBuilder clone, Bui this.ranges = new ArrayList<>(clone.ranges); } + @Override + protected ValuesSourceType defaultValueSourceType() { + // TODO: This should probably not be BYTES, but we're not failing tests with BYTES, so needs more tests? + // TODO: this should set defaultValuesSourceType to GEOPOINT + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map metaData) { return new GeoDistanceAggregationBuilder(this, factoriesBuilder, metaData); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java index 6781f8cbb7d15..c34a8b3e92b14 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java @@ -28,10 +28,12 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -70,6 +72,11 @@ protected DiversifiedAggregationBuilder(DiversifiedAggregationBuilder clone, Bui this.executionHint = clone.executionHint; } + @Override + protected ValuesSourceType defaultValueSourceType() { + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map metaData) { return new DiversifiedAggregationBuilder(this, factoriesBuilder, metaData); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java index 1ad5aba3d56dd..429e22c2b8524 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java @@ -37,10 +37,12 @@ import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator.BucketCountThresholds; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -123,6 +125,11 @@ protected SignificantTermsAggregationBuilder(SignificantTermsAggregationBuilder this.significanceHeuristic = clone.significanceHeuristic; } + @Override + protected ValuesSourceType defaultValueSourceType() { + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map metaData) { return new SignificantTermsAggregationBuilder(this, factoriesBuilder, metaData); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/RareTermsAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/RareTermsAggregationBuilder.java index b186629b6e399..a578a569550bf 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/RareTermsAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/RareTermsAggregationBuilder.java @@ -29,10 +29,12 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -77,6 +79,11 @@ private RareTermsAggregationBuilder(RareTermsAggregationBuilder clone, Builder f this.includeExclude = clone.includeExclude; } + @Override + protected ValuesSourceType defaultValueSourceType() { + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map metaData) { return new RareTermsAggregationBuilder(this, factoriesBuilder, metaData); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java index b8398a621e5f7..110929ffccb67 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java @@ -37,10 +37,12 @@ import org.elasticsearch.search.aggregations.InternalOrder.CompoundOrder; import org.elasticsearch.search.aggregations.bucket.MultiBucketAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator.BucketCountThresholds; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.List; @@ -120,6 +122,11 @@ protected TermsAggregationBuilder(TermsAggregationBuilder clone, Builder factori this.showTermDocCountError = clone.showTermDocCountError; } + @Override + protected ValuesSourceType defaultValueSourceType() { + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map metaData) { return new TermsAggregationBuilder(this, factoriesBuilder, metaData); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/CardinalityAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/CardinalityAggregationBuilder.java index 4645f8f7249fa..6b07c16a706f9 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/CardinalityAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/CardinalityAggregationBuilder.java @@ -30,10 +30,12 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -70,6 +72,11 @@ public CardinalityAggregationBuilder(CardinalityAggregationBuilder clone, Builde this.precisionThreshold = clone.precisionThreshold; } + @Override + protected ValuesSourceType defaultValueSourceType() { + return CoreValuesSourceType.BYTES; + } + /** * Read from a stream. */ diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/GeoCentroidAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/GeoCentroidAggregationBuilder.java index 24abe6b3cf8fa..44e5dcf757a6c 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/GeoCentroidAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/GeoCentroidAggregationBuilder.java @@ -28,10 +28,12 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -58,6 +60,12 @@ protected GeoCentroidAggregationBuilder(GeoCentroidAggregationBuilder clone, Bui super(clone, factoriesBuilder, metaData); } + @Override + protected ValuesSourceType defaultValueSourceType() { + // TODO: This should probably not be BYTES, but we're not failing tests with BYTES, so needs more tests? + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map metaData) { return new GeoCentroidAggregationBuilder(this, factoriesBuilder, metaData); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/ValueCountAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/ValueCountAggregationBuilder.java index c5ea1282f8d2c..25892b179829e 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/ValueCountAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/ValueCountAggregationBuilder.java @@ -29,10 +29,12 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -59,6 +61,11 @@ protected ValueCountAggregationBuilder(ValueCountAggregationBuilder clone, super(clone, factoriesBuilder, metaData); } + @Override + protected ValuesSourceType defaultValueSourceType() { + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(AggregatorFactories.Builder factoriesBuilder, Map metaData) { return new ValueCountAggregationBuilder(this, factoriesBuilder, metaData); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java index fcae9972c1e4e..e0a7917165a93 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java @@ -291,9 +291,7 @@ protected final ValuesSourceAggregatorFactory doBuild(QueryShardContext querySha * * @return The CoreValuesSourceType we expect this script to yield. */ - protected ValuesSourceType defaultValueSourceType() { - return CoreValuesSourceType.BYTES; - } + protected abstract ValuesSourceType defaultValueSourceType(); protected ValuesSourceConfig resolveConfig(QueryShardContext queryShardContext) { return ValuesSourceConfig.resolve(queryShardContext, diff --git a/server/src/test/java/org/elasticsearch/search/SearchModuleTests.java b/server/src/test/java/org/elasticsearch/search/SearchModuleTests.java index 6e388a3b5ca87..837f943463a79 100644 --- a/server/src/test/java/org/elasticsearch/search/SearchModuleTests.java +++ b/server/src/test/java/org/elasticsearch/search/SearchModuleTests.java @@ -46,9 +46,11 @@ import org.elasticsearch.search.aggregations.pipeline.DerivativePipelineAggregator; import org.elasticsearch.search.aggregations.pipeline.InternalDerivative; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import org.elasticsearch.search.fetch.FetchSubPhase; import org.elasticsearch.search.fetch.subphase.ExplainFetchSubPhase; import org.elasticsearch.search.fetch.subphase.highlight.CustomHighlighter; @@ -364,6 +366,11 @@ protected TestAggregationBuilder(TestAggregationBuilder clone, super(clone, factoriesBuilder, metaData); } + @Override + protected ValuesSourceType defaultValueSourceType() { + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map metaData) { return new TestAggregationBuilder(this, factoriesBuilder, metaData); From 89268d21830b8dfbc9fcacf0aa2abb0bc8f3417f Mon Sep 17 00:00:00 2001 From: Mark Tozzi Date: Tue, 14 Jan 2020 12:26:37 -0500 Subject: [PATCH 3/6] missed a couple --- .../join/aggregations/ChildrenAggregationBuilder.java | 6 ++++++ .../join/aggregations/ParentAggregationBuilder.java | 6 ++++++ .../stringstats/StringStatsAggregationBuilder.java | 7 +++++++ 3 files changed, 19 insertions(+) diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ChildrenAggregationBuilder.java b/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ChildrenAggregationBuilder.java index 0a19cdac3ac37..5d6c7d6dd1187 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ChildrenAggregationBuilder.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ChildrenAggregationBuilder.java @@ -38,6 +38,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -74,6 +75,11 @@ protected ChildrenAggregationBuilder(ChildrenAggregationBuilder clone, this.parentFilter = clone.parentFilter; } + @Override + protected ValuesSourceType defaultValueSourceType() { + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map metaData) { return new ChildrenAggregationBuilder(this, factoriesBuilder, metaData); diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ParentAggregationBuilder.java b/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ParentAggregationBuilder.java index 35d0954a6f69c..5b7116d551d45 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ParentAggregationBuilder.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ParentAggregationBuilder.java @@ -38,6 +38,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -74,6 +75,11 @@ protected ParentAggregationBuilder(ParentAggregationBuilder clone, this.parentFilter = clone.parentFilter; } + @Override + protected ValuesSourceType defaultValueSourceType() { + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map metaData) { return new ParentAggregationBuilder(this, factoriesBuilder, metaData); diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/stringstats/StringStatsAggregationBuilder.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/stringstats/StringStatsAggregationBuilder.java index 2dbe8ddcec569..81c3cdb101070 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/stringstats/StringStatsAggregationBuilder.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/stringstats/StringStatsAggregationBuilder.java @@ -15,9 +15,11 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -59,6 +61,11 @@ public StringStatsAggregationBuilder(StreamInput in) throws IOException { this.showDistribution = in.readBoolean(); } + @Override + protected ValuesSourceType defaultValueSourceType() { + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(AggregatorFactories.Builder factoriesBuilder, Map metaData) { return new StringStatsAggregationBuilder(this, factoriesBuilder, metaData); From dc6da9596eabdcdaa960bee7dbcbbd96bd7ea455 Mon Sep 17 00:00:00 2001 From: Mark Tozzi Date: Wed, 15 Jan 2020 16:40:04 -0500 Subject: [PATCH 4/6] hopefully the last hidden VSAB subclass --- .../transforms/MockDeprecatedAggregationBuilder.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/MockDeprecatedAggregationBuilder.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/MockDeprecatedAggregationBuilder.java index ad31af9111db1..ed5a49efa487e 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/MockDeprecatedAggregationBuilder.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/MockDeprecatedAggregationBuilder.java @@ -16,9 +16,11 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -36,6 +38,11 @@ protected MockDeprecatedAggregationBuilder(MockDeprecatedAggregationBuilder clon super(clone, factoriesBuilder, metaData); } + @Override + protected ValuesSourceType defaultValueSourceType() { + return CoreValuesSourceType.BYTES; + } + @Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map metaData) { return new MockDeprecatedAggregationBuilder(this, factoriesBuilder, metaData); From 3ed260a5698857129c2bffa36c18782d048086a5 Mon Sep 17 00:00:00 2001 From: Mark Tozzi Date: Thu, 16 Jan 2020 11:14:06 -0500 Subject: [PATCH 5/6] Correct default type for GeoGrid aggs --- .../bucket/geogrid/GeoGridAggregationBuilder.java | 7 +++++++ .../bucket/geogrid/GeoHashGridAggregationBuilder.java | 8 -------- .../bucket/geogrid/GeoTileGridAggregationBuilder.java | 6 ------ 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java index a46ab66f37f1a..57a4ce6fff99e 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java @@ -34,10 +34,12 @@ import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.bucket.BucketUtils; import org.elasticsearch.search.aggregations.bucket.MultiBucketAggregationBuilder; +import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -100,6 +102,11 @@ public GeoGridAggregationBuilder(StreamInput in) throws IOException { } } + @Override + protected ValuesSourceType defaultValueSourceType() { + return CoreValuesSourceType.GEOPOINT; + } + @Override protected void innerWriteTo(StreamOutput out) throws IOException { out.writeVInt(precision); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridAggregationBuilder.java index 509fd3fcfd785..b0bda13f04ba8 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridAggregationBuilder.java @@ -28,10 +28,8 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; -import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map; @@ -54,12 +52,6 @@ public GeoHashGridAggregationBuilder(StreamInput in) throws IOException { super(in); } - @Override - protected ValuesSourceType defaultValueSourceType() { - // TODO: This should probably not be BYTES, but we're not failing tests with BYTES, so needs more tests? - return CoreValuesSourceType.BYTES; - } - @Override public GeoGridAggregationBuilder precision(int precision) { this.precision = GeoUtils.checkPrecisionRange(precision); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridAggregationBuilder.java index fdc334bb7ef29..c9b0d0cbb61a4 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridAggregationBuilder.java @@ -53,12 +53,6 @@ public GeoTileGridAggregationBuilder(StreamInput in) throws IOException { super(in); } - @Override - protected ValuesSourceType defaultValueSourceType() { - // TODO: This should probably not be BYTES, but we're not failing tests with BYTES, so needs more tests? - return CoreValuesSourceType.BYTES; - } - @Override public GeoGridAggregationBuilder precision(int precision) { this.precision = GeoTileUtils.checkPrecisionRange(precision); From 4d776feef3c4ccfb497cb9fbf73a0009153b670f Mon Sep 17 00:00:00 2001 From: Mark Tozzi Date: Thu, 16 Jan 2020 15:21:33 -0500 Subject: [PATCH 6/6] fix checkstyle --- .../bucket/geogrid/GeoTileGridAggregationBuilder.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridAggregationBuilder.java index c9b0d0cbb61a4..53b1f74660975 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridAggregationBuilder.java @@ -27,10 +27,8 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; -import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; import java.util.Map;