diff options
author | Matthew Russotto <matthew.russotto@10gen.com> | 2018-07-25 16:09:55 -0400 |
---|---|---|
committer | Matthew Russotto <matthew.russotto@10gen.com> | 2018-08-08 20:14:43 -0400 |
commit | 0a28a3d8bf39436e02e0325dc5c02f4ef19abd20 (patch) | |
tree | 0839c1c734f6e7e9861689210b7bbbeac7ff94ed | |
parent | 08f41abf93060ab4e62797933deba77860132c18 (diff) | |
download | mongo-0a28a3d8bf39436e02e0325dc5c02f4ef19abd20.tar.gz |
SERVER-36093 QueryRequest should have a single constructor that takes a NamespaceStringOrUUID
-rw-r--r-- | src/mongo/db/query/query_request.cpp | 6 | ||||
-rw-r--r-- | src/mongo/db/query/query_request.h | 4 | ||||
-rw-r--r-- | src/mongo/db/query/query_request_test.cpp | 2 |
3 files changed, 5 insertions, 7 deletions
diff --git a/src/mongo/db/query/query_request.cpp b/src/mongo/db/query/query_request.cpp index 6f21e814c60..55dc81482e5 100644 --- a/src/mongo/db/query/query_request.cpp +++ b/src/mongo/db/query/query_request.cpp @@ -108,8 +108,8 @@ const char kNaturalSortField[] = "$natural"; const char QueryRequest::kFindCommandName[] = "find"; const char QueryRequest::kShardVersionField[] = "shardVersion"; -QueryRequest::QueryRequest(NamespaceString nss) : _nss(std::move(nss)) {} -QueryRequest::QueryRequest(CollectionUUID uuid) : _uuid(std::move(uuid)) {} +QueryRequest::QueryRequest(NamespaceStringOrUUID nssOrUuid) + : _nss(nssOrUuid.nss() ? *nssOrUuid.nss() : NamespaceString()), _uuid(nssOrUuid.uuid()) {} void QueryRequest::refreshNSS(OperationContext* opCtx) { if (_uuid) { @@ -394,7 +394,7 @@ StatusWith<unique_ptr<QueryRequest>> QueryRequest::makeFromFindCommand(Namespace BSONElement first = cmdObj.firstElement(); if (first.type() == BinData && first.binDataType() == BinDataType::newUUID) { auto uuid = uassertStatusOK(UUID::parse(first)); - auto qr = stdx::make_unique<QueryRequest>(uuid); + auto qr = stdx::make_unique<QueryRequest>(NamespaceStringOrUUID(nss.db().toString(), uuid)); return parseFromFindCommand(std::move(qr), cmdObj, isExplain); } else { auto qr = stdx::make_unique<QueryRequest>(nss); diff --git a/src/mongo/db/query/query_request.h b/src/mongo/db/query/query_request.h index 12003a95c22..ccf612b89ae 100644 --- a/src/mongo/db/query/query_request.h +++ b/src/mongo/db/query/query_request.h @@ -53,9 +53,7 @@ public: static const char kFindCommandName[]; static const char kShardVersionField[]; - QueryRequest(NamespaceString nss); - - QueryRequest(CollectionUUID uuid); + explicit QueryRequest(NamespaceStringOrUUID nss); /** * Returns a non-OK status if any property of the QR has a bad value (e.g. a negative skip diff --git a/src/mongo/db/query/query_request_test.cpp b/src/mongo/db/query/query_request_test.cpp index d52631051e5..1e3822b10ba 100644 --- a/src/mongo/db/query/query_request_test.cpp +++ b/src/mongo/db/query/query_request_test.cpp @@ -1332,7 +1332,7 @@ TEST_F(QueryRequestTest, ParseFromUUID) { Collection coll(stdx::make_unique<CollectionMock>(nss)); UUIDCatalog& catalog = UUIDCatalog::get(opCtx.get()); catalog.onCreateCollection(opCtx.get(), &coll, uuid); - QueryRequest qr(uuid); + QueryRequest qr(NamespaceStringOrUUID("test", uuid)); // Ensure a call to refreshNSS succeeds. qr.refreshNSS(opCtx.get()); ASSERT_EQ(nss, qr.nss()); |