diff options
author | Rushan Chen <rushan.chen@mongodb.com> | 2022-03-24 11:37:05 +0000 |
---|---|---|
committer | Rushan Chen <rushan.chen@mongodb.com> | 2022-03-24 14:01:38 +0000 |
commit | fa09b63b30289d92f6bcc77027844bfb49463a04 (patch) | |
tree | f42c9ba53631383a86869bb8cc8f9a2cf30e10b9 | |
parent | 5c12495a4e7dbf803ba0dc5064dd3c5b1491f170 (diff) | |
download | mongo-fa09b63b30289d92f6bcc77027844bfb49463a04.tar.gz |
SERVER-64812 use the correct operand arity check for ExpressionObject
-rw-r--r-- | src/mongo/db/query/sbe_stage_builder_expression.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/mongo/db/query/sbe_stage_builder_expression.cpp b/src/mongo/db/query/sbe_stage_builder_expression.cpp index 81a7da56bb2..b049d744184 100644 --- a/src/mongo/db/query/sbe_stage_builder_expression.cpp +++ b/src/mongo/db/query/sbe_stage_builder_expression.cpp @@ -2419,14 +2419,13 @@ public: } void visit(const ExpressionObject* expr) final { auto&& childExprs = expr->getChildExpressions(); - tassert(5995102, - "All child expressions must have been compiled", - childExprs.size() == _context->evalStack.topFrame().exprsCount()); + size_t childSize = childExprs.size(); + _context->ensureArity(childSize); // The expression argument for 'newObj' must be a sequence of a field name constant // expression and an expression for the value. So, we need 2 * childExprs.size() elements in // the expression vector. - sbe::EExpression::Vector exprs(childExprs.size() * 2); + sbe::EExpression::Vector exprs(childSize * 2); size_t i = exprs.size(); for (auto rit = childExprs.rbegin(); rit != childExprs.rend(); ++rit) { exprs[--i] = _context->popExpr(); |