summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/sbe/expressions/expression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/exec/sbe/expressions/expression.cpp')
-rw-r--r--src/mongo/db/exec/sbe/expressions/expression.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/mongo/db/exec/sbe/expressions/expression.cpp b/src/mongo/db/exec/sbe/expressions/expression.cpp
index 3a2b20a4657..65421e8b373 100644
--- a/src/mongo/db/exec/sbe/expressions/expression.cpp
+++ b/src/mongo/db/exec/sbe/expressions/expression.cpp
@@ -429,6 +429,8 @@ static stdx::unordered_map<std::string, BuiltinFn> kBuiltinFunctions = {
BuiltinFn{[](size_t n) { return n > 0; }, vm::Builtin::doubleDoubleSum, false}},
{"aggDoubleDoubleSum",
BuiltinFn{[](size_t n) { return n == 1; }, vm::Builtin::aggDoubleDoubleSum, true}},
+ {"aggMergeDoubleDoubleSums",
+ BuiltinFn{[](size_t n) { return n == 1; }, vm::Builtin::aggMergeDoubleDoubleSums, true}},
{"doubleDoubleSumFinalize",
BuiltinFn{[](size_t n) { return n > 0; }, vm::Builtin::doubleDoubleSumFinalize, false}},
{"doubleDoubleMergeSumFinalize",
@@ -436,6 +438,8 @@ static stdx::unordered_map<std::string, BuiltinFn> kBuiltinFunctions = {
{"doubleDoublePartialSumFinalize",
BuiltinFn{[](size_t n) { return n > 0; }, vm::Builtin::doubleDoublePartialSumFinalize, false}},
{"aggStdDev", BuiltinFn{[](size_t n) { return n == 1; }, vm::Builtin::aggStdDev, true}},
+ {"aggMergeStdDevs",
+ BuiltinFn{[](size_t n) { return n == 1; }, vm::Builtin::aggMergeStdDevs, true}},
{"stdDevPopFinalize",
BuiltinFn{[](size_t n) { return n == 1; }, vm::Builtin::stdDevPopFinalize, false}},
{"stdDevSampFinalize",
@@ -467,7 +471,10 @@ static stdx::unordered_map<std::string, BuiltinFn> kBuiltinFunctions = {
{"tan", BuiltinFn{[](size_t n) { return n == 1; }, vm::Builtin::tan, false}},
{"tanh", BuiltinFn{[](size_t n) { return n == 1; }, vm::Builtin::tanh, false}},
{"round", BuiltinFn{[](size_t n) { return n == 1; }, vm::Builtin::round, false}},
- {"concat", BuiltinFn{[](size_t n) { return n > 0; }, vm::Builtin::concat, false}},
+ {"concat", BuiltinFn{kAnyNumberOfArgs, vm::Builtin::concat, false}},
+ {"concatArrays", BuiltinFn{kAnyNumberOfArgs, vm::Builtin::concatArrays, false}},
+ {"aggConcatArraysCapped",
+ BuiltinFn{[](size_t n) { return n == 2; }, vm::Builtin::aggConcatArraysCapped, true}},
{"isMember", BuiltinFn{[](size_t n) { return n == 2; }, vm::Builtin::isMember, false}},
{"collIsMember", BuiltinFn{[](size_t n) { return n == 3; }, vm::Builtin::collIsMember, false}},
{"indexOfBytes",
@@ -486,6 +493,11 @@ static stdx::unordered_map<std::string, BuiltinFn> kBuiltinFunctions = {
BuiltinFn{[](size_t n) { return n >= 1; }, vm::Builtin::collSetIntersection, false}},
{"collSetDifference",
BuiltinFn{[](size_t n) { return n == 3; }, vm::Builtin::collSetDifference, false}},
+ {"aggSetUnion", BuiltinFn{[](size_t n) { return n == 1; }, vm::Builtin::aggSetUnion, true}},
+ {"aggSetUnionCapped",
+ BuiltinFn{[](size_t n) { return n == 2; }, vm::Builtin::aggSetUnionCapped, true}},
+ {"aggCollSetUnionCapped",
+ BuiltinFn{[](size_t n) { return n == 3; }, vm::Builtin::aggCollSetUnionCapped, true}},
{"runJsPredicate",
BuiltinFn{[](size_t n) { return n == 2; }, vm::Builtin::runJsPredicate, false}},
{"regexCompile", BuiltinFn{[](size_t n) { return n == 2; }, vm::Builtin::regexCompile, false}},