diff options
author | Dan Larkin-York <dan.larkin-york@mongodb.com> | 2021-10-30 17:05:14 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-10-30 17:32:44 +0000 |
commit | 8ec2e9cefaaa92e83d5a0cecd7c7d947eca32f4e (patch) | |
tree | e64f4adbdab20ab5f3bcd61766cbf4e029bcf26d | |
parent | d9e3a5e961e3a837d778ae02ffde1281c1a7b87a (diff) | |
download | mongo-8ec2e9cefaaa92e83d5a0cecd7c7d947eca32f4e.tar.gz |
SERVER-61106 Use woCompare to generate timeseries summaries
-rw-r--r-- | jstests/core/timeseries/timeseries_min_max.js | 8 | ||||
-rw-r--r-- | src/mongo/db/timeseries/minmax.cpp | 2 |
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); } }; |