diff options
Diffstat (limited to 'src/mongo/db/pipeline/expression_context.cpp')
-rw-r--r-- | src/mongo/db/pipeline/expression_context.cpp | 13 |
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; } |