summaryrefslogtreecommitdiff
path: root/src/mongo/client/dbclient_cursor.cpp
diff options
context:
space:
mode:
authorRuoxin Xu <ruoxin.xu@mongodb.com>2021-02-02 21:03:25 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-02-17 11:23:05 +0000
commit5ada96cbe318734f9c7dfa26dea3f28dbe4627bf (patch)
tree5a63211f065b1e40e5eeeb239d241355e1720ffa /src/mongo/client/dbclient_cursor.cpp
parentd4ff82a11019aef87701db9053499461601e75d6 (diff)
downloadmongo-5ada96cbe318734f9c7dfa26dea3f28dbe4627bf.tar.gz
SERVER-53060 Remove QueryRequest class
Diffstat (limited to 'src/mongo/client/dbclient_cursor.cpp')
-rw-r--r--src/mongo/client/dbclient_cursor.cpp41
1 files changed, 22 insertions, 19 deletions
diff --git a/src/mongo/client/dbclient_cursor.cpp b/src/mongo/client/dbclient_cursor.cpp
index 999a382b6ff..4dab6959f26 100644
--- a/src/mongo/client/dbclient_cursor.cpp
+++ b/src/mongo/client/dbclient_cursor.cpp
@@ -47,7 +47,7 @@
#include "mongo/db/pipeline/aggregation_request_helper.h"
#include "mongo/db/query/cursor_response.h"
#include "mongo/db/query/getmore_request.h"
-#include "mongo/db/query/query_request.h"
+#include "mongo/db/query/query_request_helper.h"
#include "mongo/logv2/log.h"
#include "mongo/rpc/factory.h"
#include "mongo/rpc/get_status_from_command_result.h"
@@ -120,43 +120,46 @@ Message DBClientCursor::_assembleInit() {
} else if (_useFindCommand) {
// The caller supplies a 'query' object which may have $-prefixed directives in the format
// expected for a legacy OP_QUERY. Therefore, we use the legacy parsing code supplied by
- // QueryRequest. When actually issuing the request to the remote node, we will assemble a
- // find command.
- auto qr = QueryRequest::fromLegacyQuery(_nsOrUuid,
- query,
- fieldsToReturn ? *fieldsToReturn : BSONObj(),
- nToSkip,
- nextBatchSize(),
- opts);
- if (qr.isOK() && !qr.getValue()->isExplain()) {
+ // query_request_helper. When actually issuing the request to the remote node, we will
+ // assemble a find command.
+ bool explain = false;
+ auto findCommand =
+ query_request_helper::fromLegacyQuery(_nsOrUuid,
+ query,
+ fieldsToReturn ? *fieldsToReturn : BSONObj(),
+ nToSkip,
+ nextBatchSize(),
+ opts,
+ &explain);
+ if (findCommand.isOK() && !explain) {
if (query.getBoolField("$readOnce")) {
// Legacy queries don't handle readOnce.
- qr.getValue()->setReadOnce(true);
+ findCommand.getValue()->setReadOnce(true);
}
if (query.getBoolField(FindCommand::kRequestResumeTokenFieldName)) {
// Legacy queries don't handle requestResumeToken.
- qr.getValue()->setRequestResumeToken(true);
+ findCommand.getValue()->setRequestResumeToken(true);
}
if (query.hasField(FindCommand::kResumeAfterFieldName)) {
// Legacy queries don't handle resumeAfter.
- qr.getValue()->setResumeAfter(
+ findCommand.getValue()->setResumeAfter(
query.getObjectField(FindCommand::kResumeAfterFieldName));
}
if (auto replTerm = query[FindCommand::kTermFieldName]) {
// Legacy queries don't handle term.
- qr.getValue()->setReplicationTerm(replTerm.numberLong());
+ findCommand.getValue()->setTerm(replTerm.numberLong());
}
// Legacy queries don't handle readConcern.
// We prioritize the readConcern parsed from the query object over '_readConcernObj'.
if (auto readConcern = query[repl::ReadConcernArgs::kReadConcernFieldName]) {
- qr.getValue()->setReadConcern(readConcern.Obj());
+ findCommand.getValue()->setReadConcern(readConcern.Obj());
} else if (_readConcernObj) {
- qr.getValue()->setReadConcern(*_readConcernObj);
+ findCommand.getValue()->setReadConcern(_readConcernObj);
}
- BSONObj cmd = qr.getValue()->asFindCommand();
+ BSONObj cmd = findCommand.getValue()->toBSON(BSONObj());
if (auto readPref = query["$readPreference"]) {
- // QueryRequest doesn't handle $readPreference.
+ // FindCommand doesn't handle $readPreference.
cmd = BSONObjBuilder(std::move(cmd)).append(readPref).obj();
}
return assembleCommandRequest(_client, ns.db(), opts, std::move(cmd));
@@ -165,7 +168,7 @@ Message DBClientCursor::_assembleInit() {
// Legacy OP_QUERY request does not support UUIDs.
if (_nsOrUuid.uuid()) {
// If there was a problem building the query request, report that.
- uassertStatusOK(qr.getStatus());
+ uassertStatusOK(findCommand.getStatus());
// Otherwise it must have been explain.
uasserted(50937, "Query by UUID is not supported for explain queries.");
}