summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-03-15 09:47:26 -0400
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2016-03-15 09:47:26 -0400
commit5f856fc375b1a5554895f98f9873c1382008f564 (patch)
treee7c6117fa9eec649f81ab245b1f9f31bb0d0115d
parent643ef6752b12a9831cfd5e75e0795c3529b12389 (diff)
downloadmongo-5f856fc375b1a5554895f98f9873c1382008f564.tar.gz
Revert "SERVER-23136 Count command should return InvalidNamespace instead of BadValue"
This reverts commit 643ef6752b12a9831cfd5e75e0795c3529b12389.
-rw-r--r--src/mongo/db/query/count_request.cpp12
-rw-r--r--src/mongo/db/query/count_request.h2
2 files changed, 7 insertions, 7 deletions
diff --git a/src/mongo/db/query/count_request.cpp b/src/mongo/db/query/count_request.cpp
index fec461455df..ad27d36c376 100644
--- a/src/mongo/db/query/count_request.cpp
+++ b/src/mongo/db/query/count_request.cpp
@@ -43,8 +43,8 @@ const char kHintField[] = "hint";
} // namespace
-CountRequest::CountRequest(NamespaceString nss, BSONObj query)
- : _nss(std::move(nss)), _query(query.getOwned()) {}
+CountRequest::CountRequest(const std::string& fullNs, BSONObj query)
+ : _nss(fullNs), _query(query.getOwned()) {}
void CountRequest::setHint(BSONObj hint) {
_hint = hint.getOwned();
@@ -76,13 +76,13 @@ StatusWith<CountRequest> CountRequest::parseFromBSON(const std::string& dbname,
BSONElement firstElt = cmdObj.firstElement();
const std::string coll = (firstElt.type() == BSONType::String) ? firstElt.str() : "";
- NamespaceString nss(dbname, coll);
- if (!nss.isValid()) {
- return Status(ErrorCodes::InvalidNamespace, "invalid collection name");
+ const std::string ns = str::stream() << dbname << "." << coll;
+ if (!nsIsFull(ns)) {
+ return Status(ErrorCodes::BadValue, "invalid collection name");
}
// We don't validate that "query" is a nested object due to SERVER-15456.
- CountRequest request(std::move(nss), cmdObj.getObjectField(kQueryField));
+ CountRequest request(ns, cmdObj.getObjectField(kQueryField));
// Limit
if (cmdObj[kLimitField].isNumber()) {
diff --git a/src/mongo/db/query/count_request.h b/src/mongo/db/query/count_request.h
index 5ea4c1b08d7..781b06dd91f 100644
--- a/src/mongo/db/query/count_request.h
+++ b/src/mongo/db/query/count_request.h
@@ -48,7 +48,7 @@ public:
/**
* Construct an empty request.
*/
- CountRequest(NamespaceString nss, BSONObj query);
+ CountRequest(const std::string& fullNs, BSONObj query);
const NamespaceString& getNs() const {
return _nss;