summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands
diff options
context:
space:
mode:
authorBernard Gorman <bernard.gorman@gmail.com>2017-05-25 20:36:12 +0100
committerBernard Gorman <bernard.gorman@gmail.com>2017-05-26 08:05:22 +0100
commit58486605c09672b3bfce8608dca403a145413bba (patch)
tree62f44cbd43515b591e6af6347c0a75eb5c6ab5fb /src/mongo/db/commands
parent4b88bf79dc47cbdfd74a11605cc5ee1c61e379f8 (diff)
downloadmongo-58486605c09672b3bfce8608dca403a145413bba.tar.gz
SERVER-19318 Add $currentOp aggregation stage for mongoD
Diffstat (limited to 'src/mongo/db/commands')
-rw-r--r--src/mongo/db/commands/count_cmd.cpp2
-rw-r--r--src/mongo/db/commands/distinct.cpp2
-rw-r--r--src/mongo/db/commands/find_cmd.cpp2
-rw-r--r--src/mongo/db/commands/geo_near_cmd.cpp2
-rw-r--r--src/mongo/db/commands/getmore_cmd.cpp2
-rw-r--r--src/mongo/db/commands/group_cmd.cpp2
-rw-r--r--src/mongo/db/commands/haystack.cpp2
-rw-r--r--src/mongo/db/commands/parallel_collection_scan.cpp2
-rw-r--r--src/mongo/db/commands/pipeline_command.cpp13
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;