28
28
import org .elasticsearch .search .aggregations .bucket .SingleBucketAggregator ;
29
29
import org .elasticsearch .search .aggregations .metrics .InternalNumericMetricsAggregation ;
30
30
import org .elasticsearch .search .aggregations .metrics .NumericMetricsAggregator ;
31
+ import org .elasticsearch .search .profile .aggregation .ProfilingAggregator ;
31
32
32
33
import java .util .ArrayList ;
33
34
import java .util .List ;
@@ -256,7 +257,7 @@ public Aggregator resolveAggregator(Aggregator root) {
256
257
Aggregator aggregator = root ;
257
258
for (int i = 0 ; i < pathElements .size (); i ++) {
258
259
AggregationPath .PathElement token = pathElements .get (i );
259
- aggregator = aggregator .subAggregator (token .name );
260
+ aggregator = ProfilingAggregator . unwrap ( aggregator .subAggregator (token .name ) );
260
261
assert (aggregator instanceof SingleBucketAggregator && i <= pathElements .size () - 1 )
261
262
|| (aggregator instanceof NumericMetricsAggregator && i == pathElements .size () - 1 ) :
262
263
"this should be picked up before aggregation execution - on validate" ;
@@ -272,7 +273,7 @@ public Aggregator resolveAggregator(Aggregator root) {
272
273
*/
273
274
public Aggregator resolveTopmostAggregator (Aggregator root ) {
274
275
AggregationPath .PathElement token = pathElements .get (0 );
275
- Aggregator aggregator = root .subAggregator (token .name );
276
+ Aggregator aggregator = ProfilingAggregator . unwrap ( root .subAggregator (token .name ) );
276
277
assert (aggregator instanceof SingleBucketAggregator )
277
278
|| (aggregator instanceof NumericMetricsAggregator ) : "this should be picked up before aggregation execution - on validate" ;
278
279
return aggregator ;
@@ -287,7 +288,7 @@ public Aggregator resolveTopmostAggregator(Aggregator root) {
287
288
public void validate (Aggregator root ) throws AggregationExecutionException {
288
289
Aggregator aggregator = root ;
289
290
for (int i = 0 ; i < pathElements .size (); i ++) {
290
- aggregator = aggregator .subAggregator (pathElements .get (i ).name );
291
+ aggregator = ProfilingAggregator . unwrap ( aggregator .subAggregator (pathElements .get (i ).name ) );
291
292
if (aggregator == null ) {
292
293
throw new AggregationExecutionException ("Invalid aggregator order path [" + this + "]. Unknown aggregation ["
293
294
+ pathElements .get (i ).name + "]" );
0 commit comments