summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/batched_delete_stage.cpp
diff options
context:
space:
mode:
authorJordi Serra Torrens <jordi.serra-torrens@mongodb.com>2022-09-28 10:11:50 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-11-04 18:50:12 +0000
commit53973727e253d8b797bc0b2a734326d4e3fdad6d (patch)
treed4cf0a1effcc98ab265b44317194658c975775b7 /src/mongo/db/exec/batched_delete_stage.cpp
parent05cf56be4fdfa33c88d47dfb48f95a60c9cc7e09 (diff)
downloadmongo-53973727e253d8b797bc0b2a734326d4e3fdad6d.tar.gz
SERVER-70043 Thread-through CollectionPtr into the onDelete OpObserver
Co-authored-by: Daniel Gómez Ferro <daniel.gomezferro@mongodb.com>
Diffstat (limited to 'src/mongo/db/exec/batched_delete_stage.cpp')
-rw-r--r--src/mongo/db/exec/batched_delete_stage.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/mongo/db/exec/batched_delete_stage.cpp b/src/mongo/db/exec/batched_delete_stage.cpp
index 7c1141e0f99..3c78b7ccab9 100644
--- a/src/mongo/db/exec/batched_delete_stage.cpp
+++ b/src/mongo/db/exec/batched_delete_stage.cpp
@@ -33,6 +33,7 @@
#include "mongo/db/exec/batched_delete_stage.h"
#include "mongo/db/catalog/collection.h"
+#include "mongo/db/catalog/collection_write_path.h"
#include "mongo/db/commands/server_status.h"
#include "mongo/db/curop.h"
#include "mongo/db/exec/scoped_timer.h"
@@ -348,6 +349,7 @@ long long BatchedDeleteStage::_commitBatch(WorkingSetID* out,
const auto action = docStillMatches ? _preWriteFilter.computeAction(member->doc.value())
: write_stage_common::PreWriteFilter::Action::kSkip;
bool writeToOrphan = false;
+ auto retryableWrite = write_stage_common::isRetryableWrite(opCtx());
switch (action) {
case write_stage_common::PreWriteFilter::Action::kSkip:
LOGV2_DEBUG(
@@ -388,16 +390,20 @@ long long BatchedDeleteStage::_commitBatch(WorkingSetID* out,
return batchTimer.millis();
}
- collection()->deleteDocument(opCtx(),
- Snapshotted(memberDoc.snapshotId(), bsonObjDoc),
- _params->stmtId,
- member->recordId,
- _params->opDebug,
- _params->fromMigrate || writeToOrphan,
- false,
- _params->returnDeleted
- ? Collection::StoreDeletedDoc::On
- : Collection::StoreDeletedDoc::Off);
+ collection_internal::deleteDocument(
+ opCtx(),
+ collection(),
+ Snapshotted(memberDoc.snapshotId(), bsonObjDoc),
+ _params->stmtId,
+ member->recordId,
+ _params->opDebug,
+ _params->fromMigrate || writeToOrphan,
+ false,
+ _params->returnDeleted ? collection_internal::StoreDeletedDoc::On
+ : collection_internal::StoreDeletedDoc::Off,
+ CheckRecordId::Off,
+ retryableWrite ? collection_internal::RetryableWrite::kYes
+ : collection_internal::RetryableWrite::kNo);
(*docsDeleted)++;
(*bytesDeleted) += bsonObjDoc.objsize();