Skip to content

Commit 0c613a1

Browse files
authored
Fix missing position offset in lossy sum of doubles (#133833)
We are missing the positionOffset when calculating the sum in the tight loop. Closes #133809 Closes #133822 Closes #133829
1 parent 6ab73a1 commit 0c613a1

File tree

2 files changed

+2
-11
lines changed

2 files changed

+2
-11
lines changed

muted-tests.yml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -543,15 +543,6 @@ tests:
543543
- class: org.elasticsearch.xpack.esql.qa.single_node.GenerativeIT
544544
method: test
545545
issue: https://github.com/elastic/elasticsearch/issues/133077
546-
- class: org.elasticsearch.compute.aggregation.LossySumDoubleGroupingAggregatorFunctionTests
547-
method: testManyInitialManyPartialFinalRunner
548-
issue: https://github.com/elastic/elasticsearch/issues/133809
549-
- class: org.elasticsearch.compute.aggregation.LossySumDoubleGroupingAggregatorFunctionTests
550-
method: testInitialIntermediateFinal
551-
issue: https://github.com/elastic/elasticsearch/issues/133822
552-
- class: org.elasticsearch.compute.aggregation.LossySumDoubleGroupingAggregatorFunctionTests
553-
method: testInitialFinal
554-
issue: https://github.com/elastic/elasticsearch/issues/133829
555546
- class: org.elasticsearch.xpack.esql.action.RandomizedTimeSeriesIT
556547
method: testGroupBySubset
557548
issue: https://github.com/elastic/elasticsearch/issues/133220

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/LossySumDoubleAggregator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@ public void add(int positionOffset, IntBigArrayBlock groupIds) {
144144
public void add(int positionOffset, IntVector groupIds) {
145145
if (groupIds.isConstant()) {
146146
double sum = 0.0;
147-
int positionCount = groupIds.getPositionCount();
148-
for (int i = 0; i < positionCount; i++) {
147+
final int to = positionOffset + groupIds.getPositionCount();
148+
for (int i = positionOffset; i < to; i++) {
149149
sum += values.getDouble(i);
150150
}
151151
state.add(sum, groupIds.getInt(0));

0 commit comments

Comments
 (0)