summaryrefslogtreecommitdiff
path: root/src/mongo/db/index/index_access_method.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/index/index_access_method.cpp')
-rw-r--r--src/mongo/db/index/index_access_method.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/mongo/db/index/index_access_method.cpp b/src/mongo/db/index/index_access_method.cpp
index f99d3104c30..b10bc6add71 100644
--- a/src/mongo/db/index/index_access_method.cpp
+++ b/src/mongo/db/index/index_access_method.cpp
@@ -102,8 +102,8 @@ Status IndexAccessMethod::insert(OperationContext* txn,
const RecordId& loc,
const InsertDeleteOptions& options,
int64_t* numInserted) {
+ invariant(numInserted);
*numInserted = 0;
-
BSONObjSet keys;
// Delegate to the subclass.
getKeys(obj, &keys);
@@ -179,9 +179,10 @@ Status IndexAccessMethod::remove(OperationContext* txn,
const RecordId& loc,
const InsertDeleteOptions& options,
int64_t* numDeleted) {
+ invariant(numDeleted);
+ *numDeleted = 0;
BSONObjSet keys;
getKeys(obj, &keys);
- *numDeleted = 0;
for (BSONObjSet::const_iterator i = keys.begin(); i != keys.end(); ++i) {
removeOneKey(txn, *i, loc, options.dupsAllowed);
@@ -291,7 +292,14 @@ Status IndexAccessMethod::validateUpdate(OperationContext* txn,
Status IndexAccessMethod::update(OperationContext* txn,
const UpdateTicket& ticket,
- int64_t* numUpdated) {
+ int64_t* numInserted,
+ int64_t* numDeleted) {
+ invariant(numInserted);
+ invariant(numDeleted);
+
+ *numInserted = 0;
+ *numDeleted = 0;
+
if (!ticket._isValid) {
return Status(ErrorCodes::InternalError, "Invalid UpdateTicket in update");
}
@@ -317,7 +325,8 @@ Status IndexAccessMethod::update(OperationContext* txn,
}
}
- *numUpdated = ticket.added.size();
+ *numInserted = ticket.added.size();
+ *numDeleted = ticket.removed.size();
return Status::OK();
}