summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/expression_context.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/pipeline/expression_context.cpp')
-rw-r--r--src/mongo/db/pipeline/expression_context.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/mongo/db/pipeline/expression_context.cpp b/src/mongo/db/pipeline/expression_context.cpp
index 69698ab0289..2f4d8b616fe 100644
--- a/src/mongo/db/pipeline/expression_context.cpp
+++ b/src/mongo/db/pipeline/expression_context.cpp
@@ -225,21 +225,28 @@ intrusive_ptr<ExpressionContext> ExpressionContext::copyWith(
}
void ExpressionContext::startExpressionCounters() {
- if (!_expressionCounters) {
+ if (enabledCounters && !_expressionCounters) {
_expressionCounters = boost::make_optional<ExpressionCounters>({});
}
}
void ExpressionContext::incrementMatchExprCounter(StringData name) {
- if (_expressionCounters) {
+ if (enabledCounters && _expressionCounters) {
++_expressionCounters.get().matchExprCountersMap[name];
}
}
+void ExpressionContext::incrementAggExprCounter(StringData name) {
+ if (enabledCounters && _expressionCounters) {
+ ++_expressionCounters.get().aggExprCountersMap[name];
+ }
+}
+
void ExpressionContext::stopExpressionCounters() {
- if (_expressionCounters) {
+ if (enabledCounters && _expressionCounters) {
operatorCountersMatchExpressions.mergeCounters(
_expressionCounters.get().matchExprCountersMap);
+ operatorCountersAggExpressions.mergeCounters(_expressionCounters.get().aggExprCountersMap);
}
_expressionCounters = boost::none;
}