summaryrefslogtreecommitdiff
path: root/src/mongo/db/ops/update.cpp
diff options
context:
space:
mode:
authorTess Avitabile <tess.avitabile@mongodb.com>2017-06-27 13:06:18 -0400
committerTess Avitabile <tess.avitabile@mongodb.com>2017-06-30 17:10:38 -0400
commit07baac065147381842a172726a5f80d7e57a6ef8 (patch)
treef358a00798025d4b848ddb5231ccd2974e3db501 /src/mongo/db/ops/update.cpp
parentacc6b704793fc37d5439b32b64a186a500436a36 (diff)
downloadmongo-07baac065147381842a172726a5f80d7e57a6ef8.tar.gz
SERVER-29162 UpdateNode implementation should only validate modified fields
Diffstat (limited to 'src/mongo/db/ops/update.cpp')
-rw-r--r--src/mongo/db/ops/update.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mongo/db/ops/update.cpp b/src/mongo/db/ops/update.cpp
index 2aa57637773..078d2f30f25 100644
--- a/src/mongo/db/ops/update.cpp
+++ b/src/mongo/db/ops/update.cpp
@@ -136,7 +136,14 @@ BSONObj applyUpdateOperators(const BSONObj& from, const BSONObj& operators) {
}
mutablebson::Document doc(from, mutablebson::Document::kInPlaceDisabled);
- status = driver.update(StringData(), &doc);
+
+ // The original document can be empty because it is only needed for validation of immutable
+ // paths.
+ const BSONObj emptyOriginal;
+ const bool validateForStorage = false;
+ const FieldRefSet emptyImmutablePaths;
+ status =
+ driver.update(StringData(), emptyOriginal, &doc, validateForStorage, emptyImmutablePaths);
if (!status.isOK()) {
uasserted(16839, status.reason());
}