diff options
author | Jordi Serra Torrens <jordi.serra-torrens@mongodb.com> | 2022-09-28 10:11:50 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-11-04 18:50:12 +0000 |
commit | 53973727e253d8b797bc0b2a734326d4e3fdad6d (patch) | |
tree | d4cf0a1effcc98ab265b44317194658c975775b7 /src/mongo/db/exec/batched_delete_stage.cpp | |
parent | 05cf56be4fdfa33c88d47dfb48f95a60c9cc7e09 (diff) | |
download | mongo-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.cpp | 26 |
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(); |