diff options
author | Benety Goh <benety@mongodb.com> | 2020-09-11 15:27:18 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-09-14 18:23:41 +0000 |
commit | 4d5c5fefbd81ee63831b4264de872e2338875fdd (patch) | |
tree | 9fc37351138333e3fcd153d496a791e8866e7578 /src/mongo/db/pipeline | |
parent | b80b53bde9cfd36fbf2d50e129d123ba8f35df48 (diff) | |
download | mongo-4d5c5fefbd81ee63831b4264de872e2338875fdd.tar.gz |
SERVER-48871 Implement agg set expression operators in grammar
Diffstat (limited to 'src/mongo/db/pipeline')
-rw-r--r-- | src/mongo/db/pipeline/expression.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mongo/db/pipeline/expression.h b/src/mongo/db/pipeline/expression.h index 2dfa80f74f3..990ae17b224 100644 --- a/src/mongo/db/pipeline/expression.h +++ b/src/mongo/db/pipeline/expression.h @@ -797,6 +797,8 @@ class ExpressionAllElementsTrue final : public ExpressionFixedArity<ExpressionAl public: explicit ExpressionAllElementsTrue(ExpressionContext* const expCtx) : ExpressionFixedArity<ExpressionAllElementsTrue, 1>(expCtx) {} + ExpressionAllElementsTrue(ExpressionContext* const expCtx, ExpressionVector&& children) + : ExpressionFixedArity<ExpressionAllElementsTrue, 1>(expCtx, std::move(children)) {} Value evaluate(const Document& root, Variables* variables) const final; const char* getOpName() const final; @@ -837,6 +839,8 @@ class ExpressionAnyElementTrue final : public ExpressionFixedArity<ExpressionAny public: explicit ExpressionAnyElementTrue(ExpressionContext* const expCtx) : ExpressionFixedArity<ExpressionAnyElementTrue, 1>(expCtx) {} + ExpressionAnyElementTrue(ExpressionContext* const expCtx, ExpressionVector&& children) + : ExpressionFixedArity<ExpressionAnyElementTrue, 1>(expCtx, std::move(children)) {} Value evaluate(const Document& root, Variables* variables) const final; const char* getOpName() const final; @@ -2137,6 +2141,8 @@ class ExpressionSetDifference final : public ExpressionFixedArity<ExpressionSetD public: explicit ExpressionSetDifference(ExpressionContext* const expCtx) : ExpressionFixedArity<ExpressionSetDifference, 2>(expCtx) {} + ExpressionSetDifference(ExpressionContext* const expCtx, ExpressionVector&& children) + : ExpressionFixedArity<ExpressionSetDifference, 2>(expCtx, std::move(children)) {} Value evaluate(const Document& root, Variables* variables) const final; const char* getOpName() const final; @@ -2151,6 +2157,8 @@ class ExpressionSetEquals final : public ExpressionVariadic<ExpressionSetEquals> public: explicit ExpressionSetEquals(ExpressionContext* const expCtx) : ExpressionVariadic<ExpressionSetEquals>(expCtx) {} + ExpressionSetEquals(ExpressionContext* const expCtx, ExpressionVector&& children) + : ExpressionVariadic<ExpressionSetEquals>(expCtx, std::move(children)) {} Value evaluate(const Document& root, Variables* variables) const final; const char* getOpName() const final; @@ -2166,6 +2174,8 @@ class ExpressionSetIntersection final : public ExpressionVariadic<ExpressionSetI public: explicit ExpressionSetIntersection(ExpressionContext* const expCtx) : ExpressionVariadic<ExpressionSetIntersection>(expCtx) {} + ExpressionSetIntersection(ExpressionContext* const expCtx, ExpressionVector&& children) + : ExpressionVariadic<ExpressionSetIntersection>(expCtx, std::move(children)) {} Value evaluate(const Document& root, Variables* variables) const final; const char* getOpName() const final; @@ -2189,6 +2199,8 @@ class ExpressionSetIsSubset : public ExpressionFixedArity<ExpressionSetIsSubset, public: explicit ExpressionSetIsSubset(ExpressionContext* const expCtx) : ExpressionFixedArity<ExpressionSetIsSubset, 2>(expCtx) {} + ExpressionSetIsSubset(ExpressionContext* const expCtx, ExpressionVector&& children) + : ExpressionFixedArity<ExpressionSetIsSubset, 2>(expCtx, std::move(children)) {} boost::intrusive_ptr<Expression> optimize() override; Value evaluate(const Document& root, Variables* variables) const override; @@ -2207,6 +2219,8 @@ class ExpressionSetUnion final : public ExpressionVariadic<ExpressionSetUnion> { public: explicit ExpressionSetUnion(ExpressionContext* const expCtx) : ExpressionVariadic<ExpressionSetUnion>(expCtx) {} + ExpressionSetUnion(ExpressionContext* const expCtx, ExpressionVector&& children) + : ExpressionVariadic<ExpressionSetUnion>(expCtx, std::move(children)) {} Value evaluate(const Document& root, Variables* variables) const final; const char* getOpName() const final; |