summaryrefslogtreecommitdiff
path: root/src/mongo/db/ops/update.cpp
diff options
context:
space:
mode:
authorTess Avitabile <tess.avitabile@mongodb.com>2017-09-14 16:40:46 -0400
committerTess Avitabile <tess.avitabile@mongodb.com>2017-09-29 09:30:56 -0400
commite0a505e2a8bfe59d8bdfc4e5a25aef4861d58fcf (patch)
tree237c46d1e4fd1080ac58b890485fb6197d53484c /src/mongo/db/ops/update.cpp
parent026b5f6f38c883c48d063ac8ee736f7330227281 (diff)
downloadmongo-e0a505e2a8bfe59d8bdfc4e5a25aef4861d58fcf.tar.gz
SERVER-30731 MatchExpressionParser::parse() should require an ExpressionContext
Diffstat (limited to 'src/mongo/db/ops/update.cpp')
-rw-r--r--src/mongo/db/ops/update.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mongo/db/ops/update.cpp b/src/mongo/db/ops/update.cpp
index 9c661c03925..8c5b31ab53a 100644
--- a/src/mongo/db/ops/update.cpp
+++ b/src/mongo/db/ops/update.cpp
@@ -108,8 +108,12 @@ UpdateResult update(OperationContext* opCtx, Database* db, const UpdateRequest&
return UpdateStage::makeUpdateResult(updateStats);
}
-BSONObj applyUpdateOperators(const BSONObj& from, const BSONObj& operators) {
- UpdateDriver::Options opts;
+BSONObj applyUpdateOperators(OperationContext* opCtx,
+ const BSONObj& from,
+ const BSONObj& operators) {
+ const CollatorInterface* collator = nullptr;
+ boost::intrusive_ptr<ExpressionContext> expCtx(new ExpressionContext(opCtx, collator));
+ UpdateDriver::Options opts(std::move(expCtx));
UpdateDriver driver(opts);
std::map<StringData, std::unique_ptr<ExpressionWithPlaceholder>> arrayFilters;
Status status = driver.parse(operators, arrayFilters);