summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Larkin-York <dan.larkin-york@mongodb.com>2021-10-30 17:05:14 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-10-30 17:32:44 +0000
commit8ec2e9cefaaa92e83d5a0cecd7c7d947eca32f4e (patch)
treee64f4adbdab20ab5f3bcd61766cbf4e029bcf26d
parentd9e3a5e961e3a837d778ae02ffde1281c1a7b87a (diff)
downloadmongo-8ec2e9cefaaa92e83d5a0cecd7c7d947eca32f4e.tar.gz
SERVER-61106 Use woCompare to generate timeseries summaries
-rw-r--r--jstests/core/timeseries/timeseries_min_max.js8
-rw-r--r--src/mongo/db/timeseries/minmax.cpp2
2 files changed, 9 insertions, 1 deletions
diff --git a/jstests/core/timeseries/timeseries_min_max.js b/jstests/core/timeseries/timeseries_min_max.js
index 293fbe6d571..18dc268c732 100644
--- a/jstests/core/timeseries/timeseries_min_max.js
+++ b/jstests/core/timeseries/timeseries_min_max.js
@@ -108,5 +108,13 @@ TimeseriesTest.run((insert) => {
runTest({a: 1, c: 1}, {a: 1, c: 1}, {a: 1, c: 1});
runTest({b: 2}, {a: 1, b: 2, c: 1}, {a: 1, b: 2, c: 1});
runTest({c: 3, d: 3}, {a: 1, b: 2, c: 1, d: 3}, {a: 1, b: 2, c: 3, d: 3});
+ clearColl();
+
+ // We correctly handle canonical type
+ runTest({a: Number(1.5)}, {a: Number(1.5)}, {a: Number(1.5)});
+ runTest({a: NumberLong(2)}, {a: Number(1.5)}, {a: NumberLong(2)});
+ runTest({a: NumberInt(1)}, {a: NumberInt(1)}, {a: NumberLong(2)});
+ runTest({a: NumberDecimal(2.5)}, {a: NumberInt(1)}, {a: NumberDecimal(2.5)});
+ runTest({a: Number(0.5)}, {a: Number(0.5)}, {a: NumberDecimal(2.5)});
});
})();
diff --git a/src/mongo/db/timeseries/minmax.cpp b/src/mongo/db/timeseries/minmax.cpp
index 7717f36df07..70612bdd438 100644
--- a/src/mongo/db/timeseries/minmax.cpp
+++ b/src/mongo/db/timeseries/minmax.cpp
@@ -488,7 +488,7 @@ std::pair<MinMaxStore::Iterator, MinMaxStore::Iterator> MinMax::_update(
(data.type() == MinMaxStore::Type::kObject && comp(typeComp(Object), 0)) ||
(data.type() == MinMaxStore::Type::kArray && comp(typeComp(Array), 0)) ||
(data.type() == MinMaxStore::Type::kValue &&
- elem.compare(data.value(), comp, false, stringComparator))) {
+ comp(elem.woCompare(data.value(), false, stringComparator), 0))) {
data.setValue(elem);
}
};