summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_merge.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/pipeline/document_source_merge.h')
-rw-r--r--src/mongo/db/pipeline/document_source_merge.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/mongo/db/pipeline/document_source_merge.h b/src/mongo/db/pipeline/document_source_merge.h
index a3623fca678..05a87f1e340 100644
--- a/src/mongo/db/pipeline/document_source_merge.h
+++ b/src/mongo/db/pipeline/document_source_merge.h
@@ -90,11 +90,17 @@ public:
ReadConcernSupportResult supportsReadConcern(repl::ReadConcernLevel level,
bool isImplicitDefault) const final {
- return {
+ ReadConcernSupportResult result = {
{level == repl::ReadConcernLevel::kLinearizableReadConcern,
{ErrorCodes::InvalidOptions,
"{} cannot be used with a 'linearizable' read concern level"_format(kStageName)}},
Status::OK()};
+ auto pipelineReadConcern = LiteParsedDocumentSourceNestedPipelines::supportsReadConcern(
+ level, isImplicitDefault);
+ // Merge the result from the sub-pipeline into the $merge specific read concern result
+ // to preserve the $merge errors over the internal pipeline errors.
+ result.merge(pipelineReadConcern);
+ return result;
}
PrivilegeVector requiredPrivileges(bool isMongos,