diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/rules/physical/local/SpatialDocValuesExtraction.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/rules/physical/local/SpatialDocValuesExtraction.java index d55c0f9f17384..adcc8bc62acb4 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/rules/physical/local/SpatialDocValuesExtraction.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/rules/physical/local/SpatialDocValuesExtraction.java @@ -97,15 +97,7 @@ && allowedForDocValues(fieldAttribute, ctx.searchStats(), agg, foundAttributes)) } } if (changedAggregates) { - exec = new AggregateExec( - agg.source(), - agg.child(), - agg.groupings(), - orderedAggregates, - agg.getMode(), - agg.intermediateAttributes(), - agg.estimatedRowSize() - ); + exec = agg.withAggregates(orderedAggregates); } } if (exec instanceof EvalExec evalExec) { diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/physical/AggregateExec.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/physical/AggregateExec.java index 19b036184d487..6d0991a24a36c 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/physical/AggregateExec.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/physical/AggregateExec.java @@ -120,6 +120,10 @@ public List aggregates() { return aggregates; } + public AggregateExec withAggregates(List newAggregates) { + return new AggregateExec(source(), child(), groupings, newAggregates, mode, intermediateAttributes, estimatedRowSize); + } + public AggregateExec withMode(AggregatorMode newMode) { return new AggregateExec(source(), child(), groupings, aggregates, newMode, intermediateAttributes, estimatedRowSize); } diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/physical/TimeSeriesAggregateExec.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/physical/TimeSeriesAggregateExec.java index e1c220b5f623b..23c4303fb6e0d 100644 --- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/physical/TimeSeriesAggregateExec.java +++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plan/physical/TimeSeriesAggregateExec.java @@ -97,6 +97,21 @@ public TimeSeriesAggregateExec replaceChild(PhysicalPlan newChild) { ); } + @Override + public AggregateExec withAggregates(List newAggregates) { + return new TimeSeriesAggregateExec( + source(), + child(), + groupings(), + newAggregates, + getMode(), + intermediateAttributes(), + estimatedRowSize(), + timeBucket + ); + } + + @Override public TimeSeriesAggregateExec withMode(AggregatorMode newMode) { return new TimeSeriesAggregateExec( source(),