From d191ba5efb1db0d56d53365136fcdfbb7f2c88e5 Mon Sep 17 00:00:00 2001 From: Benoit Orihuela Date: Fri, 19 Jul 2024 08:45:25 +0200 Subject: [PATCH] fix: avoid random rounding problems in stddev function --- .../kotlin/com/egm/stellio/search/util/DBAggregationUtils.kt | 2 +- .../egm/stellio/search/service/AggregatedQueryServiceTests.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/search-service/src/main/kotlin/com/egm/stellio/search/util/DBAggregationUtils.kt b/search-service/src/main/kotlin/com/egm/stellio/search/util/DBAggregationUtils.kt index c930c95975..a3bc977da3 100644 --- a/search-service/src/main/kotlin/com/egm/stellio/search/util/DBAggregationUtils.kt +++ b/search-service/src/main/kotlin/com/egm/stellio/search/util/DBAggregationUtils.kt @@ -35,7 +35,7 @@ private fun sqlAggregateForJsonNumber(aggregate: TemporalQuery.Aggregate): Strin TemporalQuery.Aggregate.AVG -> "avg(measured_value)" TemporalQuery.Aggregate.MIN -> "min(measured_value)" TemporalQuery.Aggregate.MAX -> "max(measured_value)" - TemporalQuery.Aggregate.STDDEV -> "stddev_samp(measured_value)" + TemporalQuery.Aggregate.STDDEV -> "round(stddev_samp(measured_value)::numeric,10)" TemporalQuery.Aggregate.SUMSQ -> "sum(power(measured_value,2))" } diff --git a/search-service/src/test/kotlin/com/egm/stellio/search/service/AggregatedQueryServiceTests.kt b/search-service/src/test/kotlin/com/egm/stellio/search/service/AggregatedQueryServiceTests.kt index 6e2f1842b6..4ff3ef2533 100644 --- a/search-service/src/test/kotlin/com/egm/stellio/search/service/AggregatedQueryServiceTests.kt +++ b/search-service/src/test/kotlin/com/egm/stellio/search/service/AggregatedQueryServiceTests.kt @@ -65,7 +65,7 @@ class AggregatedQueryServiceTests : WithTimescaleContainer, WithKafkaContainer { "avg, 5.5", "min, 1.0", "max, 10.0", - "stddev, 3.0276503540974917", + "stddev, 3.0276503541", "sumsq, 385.0" ) fun `it should correctly aggregate on JSON Number values`(aggrMethod: String, expectedValue: String) = runTest {