summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/ce/array_histogram.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/query/ce/array_histogram.h')
-rw-r--r--src/mongo/db/query/ce/array_histogram.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/mongo/db/query/ce/array_histogram.h b/src/mongo/db/query/ce/array_histogram.h
index 9acdeb6b7f7..2a6e9af3383 100644
--- a/src/mongo/db/query/ce/array_histogram.h
+++ b/src/mongo/db/query/ce/array_histogram.h
@@ -36,21 +36,23 @@
namespace mongo::ce {
+using TypeCounts = std::map<sbe::value::TypeTags, size_t>;
+
class ArrayHistogram {
public:
// Constructs an empty scalar histogram.
ArrayHistogram();
// Constructor for scalar field histograms.
- ArrayHistogram(ScalarHistogram scalar, std::map<sbe::value::TypeTags, size_t> typeCounts);
+ ArrayHistogram(ScalarHistogram scalar, TypeCounts typeCounts);
// Constructor for array field histograms. We have to initialize all array fields in this case.
ArrayHistogram(ScalarHistogram scalar,
- std::map<sbe::value::TypeTags, size_t> typeCounts,
+ TypeCounts typeCounts,
ScalarHistogram arrayUnique,
ScalarHistogram arrayMin,
ScalarHistogram arrayMax,
- std::map<sbe::value::TypeTags, size_t> arrayTypeCounts);
+ TypeCounts arrayTypeCounts);
// ArrayHistogram is neither copy-constructible nor copy-assignable.
ArrayHistogram(const ArrayHistogram&) = delete;
@@ -69,15 +71,15 @@ public:
const ScalarHistogram& getArrayUnique() const;
const ScalarHistogram& getArrayMin() const;
const ScalarHistogram& getArrayMax() const;
- const std::map<sbe::value::TypeTags, size_t>& getTypeCounts() const;
- const std::map<sbe::value::TypeTags, size_t>& getArrayTypeCounts() const;
+ const TypeCounts& getTypeCounts() const;
+ const TypeCounts& getArrayTypeCounts() const;
private:
/* ScalarHistogram fields for all paths. */
// Contains values which appeared originally as scalars on the path.
ScalarHistogram _scalar;
- std::map<sbe::value::TypeTags, size_t> _typeCounts;
+ TypeCounts _typeCounts;
/* ScalarHistogram fields for array paths (only initialized if arrays are present). */
@@ -87,7 +89,7 @@ private:
boost::optional<ScalarHistogram> _arrayMin;
// Contains maximum values originating from arrays **per class**.
boost::optional<ScalarHistogram> _arrayMax;
- boost::optional<std::map<sbe::value::TypeTags, size_t>> _arrayTypeCounts;
+ boost::optional<TypeCounts> _arrayTypeCounts;
};