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.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mongo/db/pipeline/expression_context.cpp b/src/mongo/db/pipeline/expression_context.cpp
index 2c41c612595..7258456a1ac 100644
--- a/src/mongo/db/pipeline/expression_context.cpp
+++ b/src/mongo/db/pipeline/expression_context.cpp
@@ -251,11 +251,27 @@ void ExpressionContext::incrementAggExprCounter(StringData name) {
}
}
+void ExpressionContext::incrementGroupAccumulatorExprCounter(StringData name) {
+ if (enabledCounters && _expressionCounters) {
+ ++_expressionCounters.get().groupAccumulatorExprCountersMap[name];
+ }
+}
+
+void ExpressionContext::incrementWindowAccumulatorExprCounter(StringData name) {
+ if (enabledCounters && _expressionCounters) {
+ ++_expressionCounters.get().windowAccumulatorExprCountersMap[name];
+ }
+}
+
void ExpressionContext::stopExpressionCounters() {
if (enabledCounters && _expressionCounters) {
operatorCountersMatchExpressions.mergeCounters(
_expressionCounters.get().matchExprCountersMap);
operatorCountersAggExpressions.mergeCounters(_expressionCounters.get().aggExprCountersMap);
+ operatorCountersGroupAccumulatorExpressions.mergeCounters(
+ _expressionCounters.get().groupAccumulatorExprCountersMap);
+ operatorCountersWindowAccumulatorExpressions.mergeCounters(
+ _expressionCounters.get().windowAccumulatorExprCountersMap);
}
_expressionCounters = boost::none;
}