diff options
Diffstat (limited to 'src/mongo/db/pipeline/expression.cpp')
-rw-r--r-- | src/mongo/db/pipeline/expression.cpp | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/mongo/db/pipeline/expression.cpp b/src/mongo/db/pipeline/expression.cpp index 545be1a8a9d..4f2e60a5db1 100644 --- a/src/mongo/db/pipeline/expression.cpp +++ b/src/mongo/db/pipeline/expression.cpp @@ -1438,7 +1438,9 @@ ExpressionDateFromString::ExpressionDateFromString(ExpressionContext* const expC _timeZone(_children[1]), _format(_children[2]), _onNull(_children[3]), - _onError(_children[4]) {} + _onError(_children[4]) { + expCtx->sbeCompatible = false; +} intrusive_ptr<Expression> ExpressionDateFromString::optimize() { _dateString = _dateString->optimize(); @@ -1756,7 +1758,9 @@ ExpressionDateToString::ExpressionDateToString(ExpressionContext* const expCtx, _format(_children[0]), _date(_children[1]), _timeZone(_children[2]), - _onNull(_children[3]) {} + _onNull(_children[3]) { + expCtx->sbeCompatible = false; +} intrusive_ptr<Expression> ExpressionDateToString::optimize() { _date = _date->optimize(); @@ -2097,7 +2101,9 @@ const char* ExpressionExp::getOpName() const { ExpressionObject::ExpressionObject(ExpressionContext* const expCtx, std::vector<boost::intrusive_ptr<Expression>> _children, vector<pair<string, intrusive_ptr<Expression>&>>&& expressions) - : Expression(expCtx, std::move(_children)), _expressions(std::move(expressions)) {} + : Expression(expCtx, std::move(_children)), _expressions(std::move(expressions)) { + expCtx->sbeCompatible = false; +} boost::intrusive_ptr<ExpressionObject> ExpressionObject::create( ExpressionContext* const expCtx, @@ -2684,7 +2690,9 @@ ExpressionMap::ExpressionMap(ExpressionContext* const expCtx, _varName(varName), _varId(varId), _input(_children[0]), - _each(_children[1]) {} + _each(_children[1]) { + expCtx->sbeCompatible = false; +} intrusive_ptr<Expression> ExpressionMap::optimize() { // TODO handle when _input is constant @@ -2821,7 +2829,9 @@ intrusive_ptr<Expression> ExpressionMeta::parse(ExpressionContext* const expCtx, } ExpressionMeta::ExpressionMeta(ExpressionContext* const expCtx, MetaType metaType) - : Expression(expCtx), _metaType(metaType) {} + : Expression(expCtx), _metaType(metaType) { + expCtx->sbeCompatible = false; +} Value ExpressionMeta::serialize(bool explain) const { const auto nameIter = kMetaTypeToMetaName.find(_metaType); @@ -6101,7 +6111,9 @@ ExpressionConvert::ExpressionConvert(ExpressionContext* const expCtx, _input(_children[0]), _to(_children[1]), _onError(_children[2]), - _onNull(_children[3]) {} + _onNull(_children[3]) { + expCtx->sbeCompatible = false; +} intrusive_ptr<Expression> ExpressionConvert::parse(ExpressionContext* const expCtx, BSONElement expr, @@ -6702,7 +6714,9 @@ REGISTER_EXPRESSION(rand, ExpressionRandom::parse); static thread_local PseudoRandom threadLocalRNG(SecureRandom().nextInt64()); -ExpressionRandom::ExpressionRandom(ExpressionContext* const expCtx) : Expression(expCtx) {} +ExpressionRandom::ExpressionRandom(ExpressionContext* const expCtx) : Expression(expCtx) { + expCtx->sbeCompatible = false; +} intrusive_ptr<Expression> ExpressionRandom::parse(ExpressionContext* const expCtx, BSONElement exprElement, |