[9.4] SQL: Fix internal server error on an aggregate over an aggregate alias (#159256) #159708

Merged
bpintea opened 11:38am on September 18, 2026 wanted to merge 381 Δ into elastic/elasticsearch 9.4 from
backport/9.4/pr-159256

Pull request #159708 quality checks

Code files and functions touched by this pull request are analyzed below.

Quality targets

How does this pull request compare to chosen code quality targets? Read more about code quality targets.

Target name Target value This PR
Maximum Diff Delta per PR 750 381
Maximum comment count per PR 20 0
Pull request maximum business days between activity 3 1
Pull request maximum business days open 10 1

Coupled files

Are there any files from this commit that are always committed alongside another file? This often suggests that there exists code coupling to potentially remove. Read more about code coupling

Committed together % Code file
Coupled code file
Commits in PR with both
90 x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/optimizer/OptimizerTests.java
x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/planner/QueryTranslatorTests.java
1
76 x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/analysis/analyzer/Verifier.java
x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/analysis/analyzer/VerifierErrorMessagesTests.java
1

Biggest files changes in pull request

Path View whole file Lines removed Lines added Final line count
x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/optimizer/Optimizer.java 10 59 1277
x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/optimizer/OptimizerTests.java 0 183 1382
x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/planner/QueryTranslatorTests.java 0 108 1530
x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/analysis/analyzer/Analyzer.java 0 37 1212
x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/analysis/analyzer/VerifierErrorMessagesTests.java 0 48 1815
x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/analysis/analyzer/Verifier.java 0 36 1084
x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/expression/function/aggregate/SingleValueIdentityAgg.java 0 27 27
x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/expression/function/aggregate/Percentile.java 0 0 34
x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/expression/function/aggregate/Avg.java 0 0 40
x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/expression/function/aggregate/Max.java 0 0 59
x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/expression/function/aggregate/Sum.java 0 0 50
x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/expression/function/aggregate/Min.java 0 0 59
docs/changelog/159256.yaml 0 6 6
x-pack/plugin/sql/qa/server/src/main/resources/agg.csv-spec 0 0 ---

️ Biggest functions grown or shrunk by pull request

Which functions had their line count change as part of this pull request?

Qualified function name View whole function Lines removed Lines added Final line count
Verifier::verify 0 1 165
OptimizerTests::testSumOfSumSharingStatsPromotionCollapsesToInnerAggregate 0 32 31
QueryTranslatorTests::testReplaceSumWithStatsThroughAliasedHaving 0 24 23
OptimizerTests::testSumOverAggregateExpressionIsLeftUnchanged 0 23 22
OptimizerTests::testCollapseAppliesToAnyInnerAggregate 0 16 20
Optimizer::ReplaceSumWithStats::apply 0 14 20
QueryTranslatorTests::testMinOfMinAliasInOrderByCollapsesToSingleMinAgg 0 19 18
OptimizerTests::testCollapseDoesNotApplyToCountOrPercentileRankAsOuter 0 11 18
OptimizerTests::testCollapseAppliesToAnyInnerAggregate::testCollapseDoesNotApplyToCountOrPercentileRankAsOuter 0 7 18
OptimizerTests::testCollapseDoesNotApplyToCountOrPercentileRankAsOuter::testPercentileOverAggregateExpressionIsLeftUnchanged 0 17 16
QueryTranslatorTests::testAvgOfAvgAliasInHavingCollapsesToSingleAvgAgg 0 17 16
QueryTranslatorTests::testSumOfCountAliasInHavingCollapsesToSingleCountAgg 0 15 14
Analyzer::HavingOverProject::findMissingAggregate 0 4 14
OptimizerTests::testCollapseAvgOverAvgCollapsesToInner 0 13 12
VerifierErrorMessagesTests::testNonCollapsibleAggregateOverAggregateAliasIsRejected 0 13 12
OptimizerTests::testCollapsePercentileOverMaxCollapsesToInner 0 12 11
OptimizerTests::testCollapseMinOverSumCollapsesToInner 0 12 11
QueryTranslatorTests::testPercentileOfPercentileAliasInHavingCollapsesToSinglePercentilesAgg 0 12 11
VerifierErrorMessagesTests::testNestedAggregateFunctionInExpression 0 12 11
VerifierErrorMessagesTests::testIdentityAggregateOverAggregateAliasIsAccepted 0 10 9
OptimizerTests::testCollapseAppliesToAnyInnerAggregate::Aggregate 0 9 8
Analyzer::aggregateAliases 0 9 8
Optimizer::CollapseAggregateOverAggregate::apply 0 8 7
OptimizerTests::testCollapseAppliesToAnyInnerAggregate::testCollapseDoesNotApplyToCountOrPercentileRankAsOuter::Aggregate 0 6 5