diff options
Diffstat (limited to 'src/mongo/db/pipeline/expression.h')
-rw-r--r-- | src/mongo/db/pipeline/expression.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/mongo/db/pipeline/expression.h b/src/mongo/db/pipeline/expression.h index 862a6a31da6..32b47f4562a 100644 --- a/src/mongo/db/pipeline/expression.h +++ b/src/mongo/db/pipeline/expression.h @@ -2908,4 +2908,26 @@ private: double getRandomValue() const; }; + +class ExpressionToHashedIndexKey : public Expression { +public: + ExpressionToHashedIndexKey(ExpressionContext* const expCtx, + boost::intrusive_ptr<Expression> inputExpression) + : Expression(expCtx, {inputExpression}){}; + + static boost::intrusive_ptr<Expression> parse(ExpressionContext* const expCtx, + BSONElement expr, + const VariablesParseState& vps); + + void acceptVisitor(ExpressionVisitor* visitor) final { + return visitor->visit(this); + } + + Value evaluate(const Document& root, Variables* variables) const; + Value serialize(bool explain) const final; + +protected: + void _doAddDependencies(DepsTracker* deps) const final; +}; + } // namespace mongo |