diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2016-03-14 17:49:35 -0400 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2016-03-15 09:39:27 -0400 |
commit | 643ef6752b12a9831cfd5e75e0795c3529b12389 (patch) | |
tree | 315816264eaf1a08bce7796d5c1e06b2d14f92e4 /src/mongo/db/query/count_request.cpp | |
parent | 03918a5cd5314421c72a4aa83b35fff4951c4789 (diff) | |
download | mongo-643ef6752b12a9831cfd5e75e0795c3529b12389.tar.gz |
SERVER-23136 Count command should return InvalidNamespace instead of BadValue
Diffstat (limited to 'src/mongo/db/query/count_request.cpp')
-rw-r--r-- | src/mongo/db/query/count_request.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/mongo/db/query/count_request.cpp b/src/mongo/db/query/count_request.cpp index ad27d36c376..fec461455df 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(const std::string& fullNs, BSONObj query) - : _nss(fullNs), _query(query.getOwned()) {} +CountRequest::CountRequest(NamespaceString nss, BSONObj query) + : _nss(std::move(nss)), _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() : ""; - const std::string ns = str::stream() << dbname << "." << coll; - if (!nsIsFull(ns)) { - return Status(ErrorCodes::BadValue, "invalid collection name"); + NamespaceString nss(dbname, coll); + if (!nss.isValid()) { + return Status(ErrorCodes::InvalidNamespace, "invalid collection name"); } // We don't validate that "query" is a nested object due to SERVER-15456. - CountRequest request(ns, cmdObj.getObjectField(kQueryField)); + CountRequest request(std::move(nss), cmdObj.getObjectField(kQueryField)); // Limit if (cmdObj[kLimitField].isNumber()) { |