This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 612b288 Fix avg merge (#847)
612b288 is described below
commit 612b2881bb75738ebb7b541f457ed3a8d8c2ff69
Author: Jialin Qiao <[email protected]>
AuthorDate: Thu Feb 27 11:29:19 2020 +0800
Fix avg merge (#847)
* fix show child nodes bug
* fix avg count
---
.../org/apache/iotdb/db/query/aggregation/impl/AvgAggrResult.java | 6 ++++++
.../org/apache/iotdb/db/query/aggregation/AggregateResultTest.java | 2 ++
2 files changed, 8 insertions(+)
diff --git
a/server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/AvgAggrResult.java
b/server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/AvgAggrResult.java
index a8e2250..2c4fd7a 100644
---
a/server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/AvgAggrResult.java
+++
b/server/src/main/java/org/apache/iotdb/db/query/aggregation/impl/AvgAggrResult.java
@@ -122,6 +122,7 @@ public class AvgAggrResult extends AggregateResult {
AvgAggrResult anotherAvg = (AvgAggrResult) another;
avg = avg * ((double) cnt / (cnt + anotherAvg.cnt)) +
anotherAvg.avg * ((double) anotherAvg.cnt / (cnt + anotherAvg.cnt));
+ cnt += anotherAvg.cnt;
}
@Override
@@ -137,4 +138,9 @@ public class AvgAggrResult extends AggregateResult {
ReadWriteIOUtils.write(avg, outputStream);
ReadWriteIOUtils.write(cnt, outputStream);
}
+
+ public long getCnt() {
+ return cnt;
+ }
+
}
diff --git
a/server/src/test/java/org/apache/iotdb/db/query/aggregation/AggregateResultTest.java
b/server/src/test/java/org/apache/iotdb/db/query/aggregation/AggregateResultTest.java
index 21c1914..fd01468 100644
---
a/server/src/test/java/org/apache/iotdb/db/query/aggregation/AggregateResultTest.java
+++
b/server/src/test/java/org/apache/iotdb/db/query/aggregation/AggregateResultTest.java
@@ -24,6 +24,7 @@ import java.io.IOException;
import java.nio.ByteBuffer;
import org.apache.iotdb.db.exception.query.QueryProcessException;
import org.apache.iotdb.db.qp.constant.SQLConstant;
+import org.apache.iotdb.db.query.aggregation.impl.AvgAggrResult;
import org.apache.iotdb.db.query.factory.AggregateResultFactory;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.statistics.Statistics;
@@ -49,6 +50,7 @@ public class AggregateResultTest {
avgAggrResult2.updateResultFromStatistics(statistics2);
avgAggrResult1.merge(avgAggrResult2);
Assert.assertEquals(1.333d, (double)avgAggrResult1.getResult(), 0.01);
+ Assert.assertEquals(3, ((AvgAggrResult) avgAggrResult1).getCnt());
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
avgAggrResult1.serializeTo(outputStream);