diff options
Diffstat (limited to 'src/mongo/db/pipeline/accumulator_std_dev.cpp')
-rw-r--r-- | src/mongo/db/pipeline/accumulator_std_dev.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/mongo/db/pipeline/accumulator_std_dev.cpp b/src/mongo/db/pipeline/accumulator_std_dev.cpp index 00922345ed9..6b7e757cac7 100644 --- a/src/mongo/db/pipeline/accumulator_std_dev.cpp +++ b/src/mongo/db/pipeline/accumulator_std_dev.cpp @@ -30,14 +30,17 @@ #include "mongo/db/pipeline/accumulator.h" #include "mongo/db/pipeline/document.h" +#include "mongo/db/pipeline/expression.h" #include "mongo/db/pipeline/expression_context.h" #include "mongo/db/pipeline/value.h" namespace mongo { using boost::intrusive_ptr; -REGISTER_ACCUMULATOR(stdDevPop, AccumulatorStdDev::createPop); -REGISTER_ACCUMULATOR(stdDevSamp, AccumulatorStdDev::createSamp); +REGISTER_ACCUMULATOR(stdDevPop, AccumulatorStdDevPop::create); +REGISTER_ACCUMULATOR(stdDevSamp, AccumulatorStdDevSamp::create); +REGISTER_EXPRESSION(stdDevPop, ExpressionFromAccumulator<AccumulatorStdDevPop>::parse); +REGISTER_EXPRESSION(stdDevSamp, ExpressionFromAccumulator<AccumulatorStdDevSamp>::parse); const char* AccumulatorStdDev::getOpName() const { return (_isSamp ? "$stdDevSamp" : "$stdDevPop"); @@ -90,12 +93,12 @@ Value AccumulatorStdDev::getValue(bool toBeMerged) const { } } -intrusive_ptr<Accumulator> AccumulatorStdDev::createSamp() { - return new AccumulatorStdDev(true); +intrusive_ptr<Accumulator> AccumulatorStdDevSamp::create() { + return new AccumulatorStdDevSamp(); } -intrusive_ptr<Accumulator> AccumulatorStdDev::createPop() { - return new AccumulatorStdDev(false); +intrusive_ptr<Accumulator> AccumulatorStdDevPop::create() { + return new AccumulatorStdDevPop(); } AccumulatorStdDev::AccumulatorStdDev(bool isSamp) : _isSamp(isSamp), _count(0), _mean(0), _m2(0) { |