summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2020-09-11 15:27:18 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-09-14 18:23:41 +0000
commit4d5c5fefbd81ee63831b4264de872e2338875fdd (patch)
tree9fc37351138333e3fcd153d496a791e8866e7578 /src/mongo/db/pipeline
parentb80b53bde9cfd36fbf2d50e129d123ba8f35df48 (diff)
downloadmongo-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.h14
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;