diff options
Diffstat (limited to 'src/mongo/db/commands')
-rw-r--r-- | src/mongo/db/commands/count_cmd.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/commands/distinct.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/commands/find_cmd.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/commands/geo_near_cmd.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/commands/getmore_cmd.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/commands/group_cmd.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/commands/haystack.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/commands/parallel_collection_scan.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/commands/pipeline_command.cpp | 13 |
9 files changed, 14 insertions, 15 deletions
diff --git a/src/mongo/db/commands/count_cmd.cpp b/src/mongo/db/commands/count_cmd.cpp index 0003b2bf806..bb836ace5dd 100644 --- a/src/mongo/db/commands/count_cmd.cpp +++ b/src/mongo/db/commands/count_cmd.cpp @@ -80,7 +80,7 @@ public: return false; } - bool supportsReadConcern() const final { + bool supportsReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { return true; } diff --git a/src/mongo/db/commands/distinct.cpp b/src/mongo/db/commands/distinct.cpp index c1958e34f55..6643c952395 100644 --- a/src/mongo/db/commands/distinct.cpp +++ b/src/mongo/db/commands/distinct.cpp @@ -88,7 +88,7 @@ public: return false; } - bool supportsReadConcern() const final { + bool supportsReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { return true; } diff --git a/src/mongo/db/commands/find_cmd.cpp b/src/mongo/db/commands/find_cmd.cpp index 8c7759471ce..4a1fbd18510 100644 --- a/src/mongo/db/commands/find_cmd.cpp +++ b/src/mongo/db/commands/find_cmd.cpp @@ -94,7 +94,7 @@ public: return false; } - bool supportsReadConcern() const final { + bool supportsReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { return true; } diff --git a/src/mongo/db/commands/geo_near_cmd.cpp b/src/mongo/db/commands/geo_near_cmd.cpp index ce4f54a5790..ac62769c96d 100644 --- a/src/mongo/db/commands/geo_near_cmd.cpp +++ b/src/mongo/db/commands/geo_near_cmd.cpp @@ -74,7 +74,7 @@ public: bool slaveOverrideOk() const { return true; } - bool supportsReadConcern() const final { + bool supportsReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { return true; } diff --git a/src/mongo/db/commands/getmore_cmd.cpp b/src/mongo/db/commands/getmore_cmd.cpp index 59c2848313c..d14f77b249b 100644 --- a/src/mongo/db/commands/getmore_cmd.cpp +++ b/src/mongo/db/commands/getmore_cmd.cpp @@ -97,7 +97,7 @@ public: return false; } - bool supportsReadConcern() const final { + bool supportsReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { // Uses the readConcern setting from whatever created the cursor. return false; } diff --git a/src/mongo/db/commands/group_cmd.cpp b/src/mongo/db/commands/group_cmd.cpp index 45cd9c999ce..c0cccd56f6a 100644 --- a/src/mongo/db/commands/group_cmd.cpp +++ b/src/mongo/db/commands/group_cmd.cpp @@ -80,7 +80,7 @@ private: return true; } - bool supportsReadConcern() const final { + bool supportsReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { return true; } diff --git a/src/mongo/db/commands/haystack.cpp b/src/mongo/db/commands/haystack.cpp index b2b7f9977b6..84e9bda79e8 100644 --- a/src/mongo/db/commands/haystack.cpp +++ b/src/mongo/db/commands/haystack.cpp @@ -75,7 +75,7 @@ public: return true; } - bool supportsReadConcern() const final { + bool supportsReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { return true; } diff --git a/src/mongo/db/commands/parallel_collection_scan.cpp b/src/mongo/db/commands/parallel_collection_scan.cpp index a81c9e3a4c5..de4ce3aa8f2 100644 --- a/src/mongo/db/commands/parallel_collection_scan.cpp +++ b/src/mongo/db/commands/parallel_collection_scan.cpp @@ -66,7 +66,7 @@ public: return true; } - bool supportsReadConcern() const final { + bool supportsReadConcern(const std::string& dbName, const BSONObj& cmdObj) const final { return true; } diff --git a/src/mongo/db/commands/pipeline_command.cpp b/src/mongo/db/commands/pipeline_command.cpp index 79a2e76270d..2d9a3e9006d 100644 --- a/src/mongo/db/commands/pipeline_command.cpp +++ b/src/mongo/db/commands/pipeline_command.cpp @@ -66,8 +66,8 @@ public: return true; } - bool supportsReadConcern() const override { - return true; + bool supportsReadConcern(const std::string& dbName, const BSONObj& cmdObj) const override { + return !AggregationRequest::parseNs(dbName, cmdObj).isCollectionlessAggregateNS(); } ReadWriteType getReadWriteType() const { @@ -77,7 +77,7 @@ public: Status checkAuthForCommand(Client* client, const std::string& dbname, const BSONObj& cmdObj) override { - const NamespaceString nss(parseNsCollectionRequired(dbname, cmdObj)); + const NamespaceString nss(AggregationRequest::parseNs(dbname, cmdObj)); return AuthorizationSession::get(client)->checkAuthForAggregate(nss, cmdObj); } @@ -104,10 +104,8 @@ private: const BSONObj& cmdObj, boost::optional<ExplainOptions::Verbosity> verbosity, BSONObjBuilder* result) { - const NamespaceString nss(parseNsCollectionRequired(dbname, cmdObj)); - const auto aggregationRequest = - uassertStatusOK(AggregationRequest::parseFromBSON(nss, cmdObj, verbosity)); + uassertStatusOK(AggregationRequest::parseFromBSON(dbname, cmdObj, verbosity)); // If the featureCompatibilityVersion is 3.2, we disallow collation from the user. However, // operations should still respect the collection default collation. The mongos attaches the @@ -122,7 +120,8 @@ private: ServerGlobalParams::FeatureCompatibility::Version::k32 || isMergePipeline(aggregationRequest.getPipeline())); - return runAggregate(opCtx, nss, aggregationRequest, cmdObj, *result); + return runAggregate( + opCtx, aggregationRequest.getNamespaceString(), aggregationRequest, cmdObj, *result); } } pipelineCmd; |