summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_out.cpp
diff options
context:
space:
mode:
authorArun Banala <arun.banala@mongodb.com>2020-01-27 17:14:37 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-01-29 00:23:05 +0000
commitfe52d534b34f180077ab26bb22e140cb2750497b (patch)
treeb291fa831d0a3a78612dbe19da31b4b6e8bb339b /src/mongo/db/pipeline/document_source_out.cpp
parent681631228dbaa98e00d1ea6d98c00662ef293a2b (diff)
downloadmongo-fe52d534b34f180077ab26bb22e140cb2750497b.tar.gz
SERVER-45590 Allow building a LiteParsedPipeline without first building an AggregationRequest
Diffstat (limited to 'src/mongo/db/pipeline/document_source_out.cpp')
-rw-r--r--src/mongo/db/pipeline/document_source_out.cpp26
1 files changed, 5 insertions, 21 deletions
diff --git a/src/mongo/db/pipeline/document_source_out.cpp b/src/mongo/db/pipeline/document_source_out.cpp
index 356c5b5d110..67df77f760c 100644
--- a/src/mongo/db/pipeline/document_source_out.cpp
+++ b/src/mongo/db/pipeline/document_source_out.cpp
@@ -77,7 +77,7 @@ DocumentSourceOut::~DocumentSourceOut() {
}
std::unique_ptr<DocumentSourceOut::LiteParsed> DocumentSourceOut::LiteParsed::parseToDifferentDB(
- const AggregationRequest& request, const BSONElement& spec) {
+ const NamespaceString& nss, const BSONElement& spec) {
auto specObj = spec.Obj();
auto dbElem = specObj["db"];
@@ -90,38 +90,22 @@ std::unique_ptr<DocumentSourceOut::LiteParsed> DocumentSourceOut::LiteParsed::pa
"Invalid {} target namespace, {}"_format(kStageName, targetNss.ns()),
targetNss.isValid());
- ActionSet actions{ActionType::insert, ActionType::remove};
- if (request.shouldBypassDocumentValidation()) {
- actions.addAction(ActionType::bypassDocumentValidation);
- }
-
- PrivilegeVector privileges{Privilege(ResourcePattern::forExactNamespace(targetNss), actions)};
-
- return std::make_unique<DocumentSourceOut::LiteParsed>(std::move(targetNss),
- std::move(privileges));
+ return std::make_unique<DocumentSourceOut::LiteParsed>(std::move(targetNss));
}
std::unique_ptr<DocumentSourceOut::LiteParsed> DocumentSourceOut::LiteParsed::parse(
- const AggregationRequest& request, const BSONElement& spec) {
+ const NamespaceString& nss, const BSONElement& spec) {
uassert(16990,
"{} only supports a string argument, but found {}"_format(kStageName,
typeName(spec.type())),
spec.type() == BSONType::String);
- NamespaceString targetNss{request.getNamespaceString().db(), spec.valueStringData()};
+ NamespaceString targetNss{nss.db(), spec.valueStringData()};
uassert(ErrorCodes::InvalidNamespace,
"Invalid {} target namespace, {}"_format(kStageName, targetNss.ns()),
targetNss.isValid());
- ActionSet actions{ActionType::insert, ActionType::remove};
- if (request.shouldBypassDocumentValidation()) {
- actions.addAction(ActionType::bypassDocumentValidation);
- }
-
- PrivilegeVector privileges{Privilege(ResourcePattern::forExactNamespace(targetNss), actions)};
-
- return std::make_unique<DocumentSourceOut::LiteParsed>(std::move(targetNss),
- std::move(privileges));
+ return std::make_unique<DocumentSourceOut::LiteParsed>(std::move(targetNss));
}
void DocumentSourceOut::initialize() {