summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/expression_function.cpp
diff options
context:
space:
mode:
authorLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-18 17:02:53 -0300
committerLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-18 17:02:53 -0300
commit959575a5ca598bf5f37fb5cebe7ed1d80d3d71f7 (patch)
treeacc8d60aedb12b70048e676e8a7349deb0010db8 /src/mongo/db/pipeline/expression_function.cpp
parent76588293975fc059cf076779e4283e6ffaf8afff (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.cpp16
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 {