summaryrefslogtreecommitdiff
path: root/src/mongo/db/ops
diff options
context:
space:
mode:
authorMatthew Russotto <matthew.russotto@10gen.com>2018-03-29 17:55:20 -0400
committerMatthew Russotto <matthew.russotto@10gen.com>2018-03-29 20:30:54 -0400
commitd32066522d16341e7eba3a752c8697db8b824d7a (patch)
treea476b41df6ceff6264aa5bc9d19afce704cf1992 /src/mongo/db/ops
parentcf38afc262cd2ef2ba04557ccd50ec94a92f7bc8 (diff)
downloadmongo-d32066522d16341e7eba3a752c8697db8b824d7a.tar.gz
SERVER-33211 Support multi-removes in transactions.
Diffstat (limited to 'src/mongo/db/ops')
-rw-r--r--src/mongo/db/ops/write_ops_exec.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mongo/db/ops/write_ops_exec.cpp b/src/mongo/db/ops/write_ops_exec.cpp
index c7e8269252b..14f19426d01 100644
--- a/src/mongo/db/ops/write_ops_exec.cpp
+++ b/src/mongo/db/ops/write_ops_exec.cpp
@@ -727,9 +727,11 @@ static SingleWriteResult performSingleDeleteOp(OperationContext* opCtx,
const NamespaceString& ns,
StmtId stmtId,
const write_ops::DeleteOpEntry& op) {
+ auto session = OperationContextSession::get(opCtx);
uassert(ErrorCodes::InvalidOptions,
"Cannot use (or request) retryable writes with limit=0",
- !(opCtx->getTxnNumber() && op.getMulti()));
+ (session && session->inMultiDocumentTransaction()) || !opCtx->getTxnNumber() ||
+ !op.getMulti());
globalOpCounters.gotDelete();
auto& curOp = *CurOp::get(opCtx);