diff options
| author | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-18 17:02:53 -0300 |
|---|---|---|
| committer | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-18 17:02:53 -0300 |
| commit | 959575a5ca598bf5f37fb5cebe7ed1d80d3d71f7 (patch) | |
| tree | acc8d60aedb12b70048e676e8a7349deb0010db8 /src/mongo/db/pipeline/expression_function.cpp | |
| parent | 76588293975fc059cf076779e4283e6ffaf8afff (diff) | |
New upstream version 6.0.20upstream
Diffstat (limited to 'src/mongo/db/pipeline/expression_function.cpp')
| -rw-r--r-- | src/mongo/db/pipeline/expression_function.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/mongo/db/pipeline/expression_function.cpp b/src/mongo/db/pipeline/expression_function.cpp index c53b0004b31..7bf43ffd1c9 100644 --- a/src/mongo/db/pipeline/expression_function.cpp +++ b/src/mongo/db/pipeline/expression_function.cpp @@ -46,16 +46,18 @@ ExpressionFunction::ExpressionFunction(ExpressionContext* const expCtx, expCtx->sbeCompatible = false; } -Value ExpressionFunction::serialize(bool explain) const { - MutableDocument d; - d["body"] = Value(_funcSource); - d["args"] = Value(_passedArgs->serialize(explain)); - d["lang"] = Value(_lang); +Value ExpressionFunction::serialize(const SerializationOptions& options) const { + MutableDocument innerOpts(Document{{"body"_sd, options.serializeLiteral(_funcSource)}, + {"args"_sd, _passedArgs->serialize(options)}, + // "lang" is purposefully not treated as a literal since it + // is more of a selection of an enum + {"lang"_sd, _lang}}); + // This field will only be seralized when desugaring $where in $expr + $_internalJs if (_assignFirstArgToThis) { - d["_internalSetObjToThis"] = Value(_assignFirstArgToThis); + innerOpts["_internalSetObjToThis"] = options.serializeLiteral(_assignFirstArgToThis); } - return Value(Document{{kExpressionName, d.freezeToValue()}}); + return Value(Document{{kExpressionName, innerOpts.freezeToValue()}}); } void ExpressionFunction::_doAddDependencies(mongo::DepsTracker* deps) const { |
