summaryrefslogtreecommitdiff
path: root/src/mongo/s
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/s')
-rw-r--r--src/mongo/s/SConscript2
-rw-r--r--src/mongo/s/balancer/balancer.cpp4
-rw-r--r--src/mongo/s/balancer/balancer_configuration_test.cpp5
-rw-r--r--src/mongo/s/catalog/replset/catalog_manager_replica_set_add_shard_test.cpp6
-rw-r--r--src/mongo/s/catalog/replset/catalog_manager_replica_set_drop_coll_test.cpp1
-rw-r--r--src/mongo/s/catalog/replset/catalog_manager_replica_set_remove_shard_test.cpp4
-rw-r--r--src/mongo/s/catalog/replset/catalog_manager_replica_set_shard_collection_test.cpp6
-rw-r--r--src/mongo/s/catalog/replset/catalog_manager_replica_set_test.cpp102
-rw-r--r--src/mongo/s/catalog/replset/catalog_manager_replica_set_write_retry_test.cpp8
-rw-r--r--src/mongo/s/chunk_manager.cpp6
-rw-r--r--src/mongo/s/chunk_manager_targeter_test.cpp6
-rw-r--r--src/mongo/s/client/shard_remote.cpp25
-rw-r--r--src/mongo/s/commands/cluster_count_cmd.cpp2
-rw-r--r--src/mongo/s/commands/cluster_explain.cpp1
-rw-r--r--src/mongo/s/commands/cluster_explain_cmd.cpp1
-rw-r--r--src/mongo/s/commands/cluster_find_cmd.cpp18
-rw-r--r--src/mongo/s/commands/cluster_map_reduce_cmd.cpp4
-rw-r--r--src/mongo/s/commands/cluster_pipeline_cmd.cpp8
-rw-r--r--src/mongo/s/commands/commands_public.cpp1
-rw-r--r--src/mongo/s/commands/strategy.cpp22
-rw-r--r--src/mongo/s/commands/strategy.h4
-rw-r--r--src/mongo/s/query/SConscript2
-rw-r--r--src/mongo/s/query/async_results_merger_test.cpp20
-rw-r--r--src/mongo/s/query/cluster_find.cpp91
-rw-r--r--src/mongo/s/set_shard_version_request.cpp4
-rw-r--r--src/mongo/s/shard_key_pattern.cpp6
-rw-r--r--src/mongo/s/sharding_test_fixture.cpp4
27 files changed, 177 insertions, 186 deletions
diff --git a/src/mongo/s/SConscript b/src/mongo/s/SConscript
index edf38cbde4e..74970615d7b 100644
--- a/src/mongo/s/SConscript
+++ b/src/mongo/s/SConscript
@@ -58,8 +58,8 @@ env.Library(
'$BUILD_DIR/mongo/db/common',
'$BUILD_DIR/mongo/db/matcher/expressions',
'$BUILD_DIR/mongo/db/ops/update_common',
- '$BUILD_DIR/mongo/db/query/lite_parsed_query',
'$BUILD_DIR/mongo/db/query/query_planner',
+ '$BUILD_DIR/mongo/db/query/query_request',
'$BUILD_DIR/mongo/db/repl/optime',
'$BUILD_DIR/mongo/rpc/metadata',
]
diff --git a/src/mongo/s/balancer/balancer.cpp b/src/mongo/s/balancer/balancer.cpp
index d4d463ace64..d991be6eb83 100644
--- a/src/mongo/s/balancer/balancer.cpp
+++ b/src/mongo/s/balancer/balancer.cpp
@@ -41,7 +41,7 @@
#include "mongo/db/client.h"
#include "mongo/db/namespace_string.h"
#include "mongo/db/operation_context.h"
-#include "mongo/db/query/lite_parsed_query.h"
+#include "mongo/db/query/query_request.h"
#include "mongo/s/balancer/balancer_chunk_selection_policy_impl.h"
#include "mongo/s/balancer/balancer_configuration.h"
#include "mongo/s/balancer/cluster_statistics_impl.h"
@@ -164,7 +164,7 @@ void appendOperationDeadlineIfSet(OperationContext* txn, BSONObjBuilder* cmdBuil
if (!maxTimeMsArg) {
return;
}
- cmdBuilder->append(LiteParsedQuery::cmdOptionMaxTimeMS, *maxTimeMsArg);
+ cmdBuilder->append(QueryRequest::cmdOptionMaxTimeMS, *maxTimeMsArg);
}
/**
diff --git a/src/mongo/s/balancer/balancer_configuration_test.cpp b/src/mongo/s/balancer/balancer_configuration_test.cpp
index 5119b5180b7..217df4c5196 100644
--- a/src/mongo/s/balancer/balancer_configuration_test.cpp
+++ b/src/mongo/s/balancer/balancer_configuration_test.cpp
@@ -34,7 +34,7 @@
#include "mongo/bson/bsonmisc.h"
#include "mongo/client/remote_command_targeter_mock.h"
#include "mongo/db/namespace_string.h"
-#include "mongo/db/query/lite_parsed_query.h"
+#include "mongo/db/query/query_request.h"
#include "mongo/executor/remote_command_request.h"
#include "mongo/rpc/metadata/repl_set_metadata.h"
#include "mongo/rpc/metadata/server_selection_metadata.h"
@@ -71,8 +71,7 @@ protected:
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(nss.ns(), "config.settings");
- auto query =
- assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), "config.settings");
ASSERT_EQ(query->getFilter(), BSON("_id" << key));
diff --git a/src/mongo/s/catalog/replset/catalog_manager_replica_set_add_shard_test.cpp b/src/mongo/s/catalog/replset/catalog_manager_replica_set_add_shard_test.cpp
index 4bbdb9bcebd..54f414c79cb 100644
--- a/src/mongo/s/catalog/replset/catalog_manager_replica_set_add_shard_test.cpp
+++ b/src/mongo/s/catalog/replset/catalog_manager_replica_set_add_shard_test.cpp
@@ -35,7 +35,7 @@
#include "mongo/client/remote_command_targeter_factory_mock.h"
#include "mongo/client/remote_command_targeter_mock.h"
#include "mongo/db/commands.h"
-#include "mongo/db/query/lite_parsed_query.h"
+#include "mongo/db/query/query_request.h"
#include "mongo/rpc/metadata/repl_set_metadata.h"
#include "mongo/rpc/metadata/server_selection_metadata.h"
#include "mongo/s/catalog/replset/catalog_manager_replica_set.h"
@@ -189,7 +189,7 @@ protected:
ASSERT_EQ(nss.toString(), DatabaseType::ConfigNS);
auto query =
- assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), DatabaseType::ConfigNS);
ASSERT_EQ(query->getFilter(), BSON(DatabaseType::name(dbname)));
@@ -338,7 +338,7 @@ TEST_F(AddShardTest, StandaloneGenerateName) {
ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(nss.toString(), ShardType::ConfigNS);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), ShardType::ConfigNS);
diff --git a/src/mongo/s/catalog/replset/catalog_manager_replica_set_drop_coll_test.cpp b/src/mongo/s/catalog/replset/catalog_manager_replica_set_drop_coll_test.cpp
index 01d83c3bf14..8f5b49aab7e 100644
--- a/src/mongo/s/catalog/replset/catalog_manager_replica_set_drop_coll_test.cpp
+++ b/src/mongo/s/catalog/replset/catalog_manager_replica_set_drop_coll_test.cpp
@@ -33,7 +33,6 @@
#include "mongo/bson/json.h"
#include "mongo/client/remote_command_targeter_mock.h"
#include "mongo/db/namespace_string.h"
-#include "mongo/db/query/lite_parsed_query.h"
#include "mongo/rpc/metadata/repl_set_metadata.h"
#include "mongo/rpc/metadata/server_selection_metadata.h"
#include "mongo/s/catalog/dist_lock_manager_mock.h"
diff --git a/src/mongo/s/catalog/replset/catalog_manager_replica_set_remove_shard_test.cpp b/src/mongo/s/catalog/replset/catalog_manager_replica_set_remove_shard_test.cpp
index c359b3f2874..8d3f9c1f21e 100644
--- a/src/mongo/s/catalog/replset/catalog_manager_replica_set_remove_shard_test.cpp
+++ b/src/mongo/s/catalog/replset/catalog_manager_replica_set_remove_shard_test.cpp
@@ -183,7 +183,7 @@ TEST_F(RemoveShardTest, RemoveShardStartDraining) {
ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(ShardType::ConfigNS, query->ns());
ASSERT_EQ(BSONObj(), query->getFilter());
@@ -355,7 +355,7 @@ TEST_F(RemoveShardTest, RemoveShardCompletion) {
ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(ShardType::ConfigNS, query->ns());
ASSERT_EQ(BSONObj(), query->getFilter());
diff --git a/src/mongo/s/catalog/replset/catalog_manager_replica_set_shard_collection_test.cpp b/src/mongo/s/catalog/replset/catalog_manager_replica_set_shard_collection_test.cpp
index a87244bf615..cd41e90c3ed 100644
--- a/src/mongo/s/catalog/replset/catalog_manager_replica_set_shard_collection_test.cpp
+++ b/src/mongo/s/catalog/replset/catalog_manager_replica_set_shard_collection_test.cpp
@@ -98,8 +98,7 @@ public:
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(DatabaseType::ConfigNS, nss.ns());
- auto query =
- assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(DatabaseType::ConfigNS, query->ns());
ASSERT_EQ(BSON(DatabaseType::name(expectedDb.getName())), query->getFilter());
@@ -163,8 +162,7 @@ public:
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(nss.ns(), ChunkType::ConfigNS);
- auto query =
- assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
BSONObj expectedQuery =
BSON(ChunkType::ns(ns) << ChunkType::DEPRECATED_lastmod << GTE << Timestamp());
BSONObj expectedSort = BSON(ChunkType::DEPRECATED_lastmod() << 1);
diff --git a/src/mongo/s/catalog/replset/catalog_manager_replica_set_test.cpp b/src/mongo/s/catalog/replset/catalog_manager_replica_set_test.cpp
index 574a309c63b..b45914dfeba 100644
--- a/src/mongo/s/catalog/replset/catalog_manager_replica_set_test.cpp
+++ b/src/mongo/s/catalog/replset/catalog_manager_replica_set_test.cpp
@@ -35,7 +35,7 @@
#include "mongo/bson/json.h"
#include "mongo/client/remote_command_targeter_mock.h"
#include "mongo/db/commands.h"
-#include "mongo/db/query/lite_parsed_query.h"
+#include "mongo/db/query/query_request.h"
#include "mongo/db/repl/read_concern_args.h"
#include "mongo/executor/network_interface_mock.h"
#include "mongo/executor/task_executor.h"
@@ -99,30 +99,30 @@ TEST_F(CatalogManagerReplSetTest, GetCollectionExisting) {
catalogManager()->getCollection(operationContext(), expectedColl.getNs().ns()));
});
- onFindWithMetadataCommand([this, &expectedColl, newOpTime](
- const RemoteCommandRequest& request) {
+ onFindWithMetadataCommand(
+ [this, &expectedColl, newOpTime](const RemoteCommandRequest& request) {
- ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
+ ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
- const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
- ASSERT_EQ(nss.ns(), CollectionType::ConfigNS);
+ const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
+ ASSERT_EQ(nss.ns(), CollectionType::ConfigNS);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
- // Ensure the query is correct
- ASSERT_EQ(query->ns(), CollectionType::ConfigNS);
- ASSERT_EQ(query->getFilter(), BSON(CollectionType::fullNs(expectedColl.getNs().ns())));
- ASSERT_EQ(query->getSort(), BSONObj());
- ASSERT_EQ(query->getLimit().get(), 1);
+ // Ensure the query is correct
+ ASSERT_EQ(query->ns(), CollectionType::ConfigNS);
+ ASSERT_EQ(query->getFilter(), BSON(CollectionType::fullNs(expectedColl.getNs().ns())));
+ ASSERT_EQ(query->getSort(), BSONObj());
+ ASSERT_EQ(query->getLimit().get(), 1);
- checkReadConcern(request.cmdObj, Timestamp(0, 0), repl::OpTime::kUninitializedTerm);
+ checkReadConcern(request.cmdObj, Timestamp(0, 0), repl::OpTime::kUninitializedTerm);
- ReplSetMetadata metadata(10, OpTime(), newOpTime, 100, OID(), 30, -1);
- BSONObjBuilder builder;
- metadata.writeToMetadata(&builder);
+ ReplSetMetadata metadata(10, OpTime(), newOpTime, 100, OID(), 30, -1);
+ BSONObjBuilder builder;
+ metadata.writeToMetadata(&builder);
- return std::make_tuple(vector<BSONObj>{expectedColl.toBSON()}, builder.obj());
- });
+ return std::make_tuple(vector<BSONObj>{expectedColl.toBSON()}, builder.obj());
+ });
// Now wait for the getCollection call to return
const auto collOpTimePair = future.timed_get(kFutureTimeout);
@@ -170,7 +170,7 @@ TEST_F(CatalogManagerReplSetTest, GetDatabaseExisting) {
ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), DatabaseType::ConfigNS);
ASSERT_EQ(query->getFilter(), BSON(DatabaseType::name(expectedDb.getName())));
@@ -399,7 +399,7 @@ TEST_F(CatalogManagerReplSetTest, GetAllShardsValid) {
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(nss.ns(), ShardType::ConfigNS);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), ShardType::ConfigNS);
ASSERT_EQ(query->getFilter(), BSONObj());
@@ -494,7 +494,7 @@ TEST_F(CatalogManagerReplSetTest, GetChunksForNSWithSortAndLimit) {
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(nss.ns(), ChunkType::ConfigNS);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), ChunkType::ConfigNS);
ASSERT_EQ(query->getFilter(), chunksQuery);
@@ -541,7 +541,7 @@ TEST_F(CatalogManagerReplSetTest, GetChunksForNSNoSortNoLimit) {
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(nss.ns(), ChunkType::ConfigNS);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), ChunkType::ConfigNS);
ASSERT_EQ(query->getFilter(), chunksQuery);
@@ -883,28 +883,28 @@ TEST_F(CatalogManagerReplSetTest, GetCollectionsValidResultsNoDb) {
return collections;
});
- onFindWithMetadataCommand([this, coll1, coll2, coll3, newOpTime](
- const RemoteCommandRequest& request) {
- ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
+ onFindWithMetadataCommand(
+ [this, coll1, coll2, coll3, newOpTime](const RemoteCommandRequest& request) {
+ ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
- const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
- ASSERT_EQ(nss.ns(), CollectionType::ConfigNS);
+ const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
+ ASSERT_EQ(nss.ns(), CollectionType::ConfigNS);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
- ASSERT_EQ(query->ns(), CollectionType::ConfigNS);
- ASSERT_EQ(query->getFilter(), BSONObj());
- ASSERT_EQ(query->getSort(), BSONObj());
+ ASSERT_EQ(query->ns(), CollectionType::ConfigNS);
+ ASSERT_EQ(query->getFilter(), BSONObj());
+ ASSERT_EQ(query->getSort(), BSONObj());
- checkReadConcern(request.cmdObj, Timestamp(0, 0), repl::OpTime::kUninitializedTerm);
+ checkReadConcern(request.cmdObj, Timestamp(0, 0), repl::OpTime::kUninitializedTerm);
- ReplSetMetadata metadata(10, OpTime(), newOpTime, 100, OID(), 30, -1);
- BSONObjBuilder builder;
- metadata.writeToMetadata(&builder);
+ ReplSetMetadata metadata(10, OpTime(), newOpTime, 100, OID(), 30, -1);
+ BSONObjBuilder builder;
+ metadata.writeToMetadata(&builder);
- return std::make_tuple(vector<BSONObj>{coll1.toBSON(), coll2.toBSON(), coll3.toBSON()},
- builder.obj());
- });
+ return std::make_tuple(vector<BSONObj>{coll1.toBSON(), coll2.toBSON(), coll3.toBSON()},
+ builder.obj());
+ });
const auto& actualColls = future.timed_get(kFutureTimeout);
ASSERT_EQ(3U, actualColls.size());
@@ -947,7 +947,7 @@ TEST_F(CatalogManagerReplSetTest, GetCollectionsValidResultsWithDb) {
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(nss.ns(), CollectionType::ConfigNS);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), CollectionType::ConfigNS);
{
@@ -995,7 +995,7 @@ TEST_F(CatalogManagerReplSetTest, GetCollectionsInvalidCollectionType) {
ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), CollectionType::ConfigNS);
{
@@ -1041,7 +1041,7 @@ TEST_F(CatalogManagerReplSetTest, GetDatabasesForShardValid) {
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(nss.ns(), DatabaseType::ConfigNS);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), DatabaseType::ConfigNS);
ASSERT_EQ(query->getFilter(), BSON(DatabaseType::primary(dbt1.getPrimary())));
@@ -1115,7 +1115,7 @@ TEST_F(CatalogManagerReplSetTest, GetTagsForCollection) {
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(nss.ns(), TagsType::ConfigNS);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), TagsType::ConfigNS);
ASSERT_EQ(query->getFilter(), BSON(TagsType::ns("TestDB.TestColl")));
@@ -1201,7 +1201,7 @@ TEST_F(CatalogManagerReplSetTest, GetTagForChunkOneTagFound) {
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(nss.ns(), TagsType::ConfigNS);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), TagsType::ConfigNS);
ASSERT_EQ(query->getFilter(),
@@ -1246,7 +1246,7 @@ TEST_F(CatalogManagerReplSetTest, GetTagForChunkNoTagFound) {
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(nss.ns(), TagsType::ConfigNS);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), TagsType::ConfigNS);
ASSERT_EQ(query->getFilter(),
@@ -1288,7 +1288,7 @@ TEST_F(CatalogManagerReplSetTest, GetTagForChunkInvalidTagDoc) {
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(nss.ns(), TagsType::ConfigNS);
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(query->ns(), TagsType::ConfigNS);
ASSERT_EQ(query->getFilter(),
@@ -1517,7 +1517,7 @@ TEST_F(CatalogManagerReplSetTest, createDatabaseSuccess) {
ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(ShardType::ConfigNS, query->ns());
ASSERT_EQ(BSONObj(), query->getFilter());
@@ -1679,7 +1679,7 @@ TEST_F(CatalogManagerReplSetTest, createDatabaseDBExists) {
ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
BSONObjBuilder queryBuilder;
queryBuilder.appendRegex(
@@ -1718,7 +1718,7 @@ TEST_F(CatalogManagerReplSetTest, createDatabaseDBExistsDifferentCase) {
ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
BSONObjBuilder queryBuilder;
queryBuilder.appendRegex(
@@ -1765,7 +1765,7 @@ TEST_F(CatalogManagerReplSetTest, createDatabaseNoShards) {
onFindCommand([this](const RemoteCommandRequest& request) {
ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(ShardType::ConfigNS, query->ns());
ASSERT_EQ(BSONObj(), query->getFilter());
@@ -1804,7 +1804,7 @@ TEST_F(CatalogManagerReplSetTest, createDatabaseDuplicateKeyOnInsert) {
ASSERT_EQUALS(configHost, request.target);
ASSERT_EQUALS(kReplSecondaryOkMetadata, request.metadata);
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
- auto query = assertGet(LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false));
+ auto query = assertGet(QueryRequest::makeFromFindCommand(nss, request.cmdObj, false));
ASSERT_EQ(ShardType::ConfigNS, query->ns());
ASSERT_EQ(BSONObj(), query->getFilter());
@@ -1959,7 +1959,7 @@ TEST_F(CatalogManagerReplSetTest, EnableShardingNoDBExists) {
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(DatabaseType::ConfigNS, nss.toString());
- auto queryResult = LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false);
+ auto queryResult = QueryRequest::makeFromFindCommand(nss, request.cmdObj, false);
ASSERT_OK(queryResult.getStatus());
const auto& query = queryResult.getValue();
diff --git a/src/mongo/s/catalog/replset/catalog_manager_replica_set_write_retry_test.cpp b/src/mongo/s/catalog/replset/catalog_manager_replica_set_write_retry_test.cpp
index 27554868a9b..2f00e9533f6 100644
--- a/src/mongo/s/catalog/replset/catalog_manager_replica_set_write_retry_test.cpp
+++ b/src/mongo/s/catalog/replset/catalog_manager_replica_set_write_retry_test.cpp
@@ -164,7 +164,7 @@ TEST_F(InsertRetryTest, DuplicateKeyErrorAfterNetworkErrorMatch) {
onFindCommand([&](const RemoteCommandRequest& request) {
ASSERT_EQ(request.target, kTestHosts[1]);
auto query =
- assertGet(LiteParsedQuery::makeFromFindCommand(kTestNamespace, request.cmdObj, false));
+ assertGet(QueryRequest::makeFromFindCommand(kTestNamespace, request.cmdObj, false));
ASSERT_EQ(BSON("_id" << 1), query->getFilter());
return vector<BSONObj>{objToInsert};
@@ -199,7 +199,7 @@ TEST_F(InsertRetryTest, DuplicateKeyErrorAfterNetworkErrorNotFound) {
onFindCommand([&](const RemoteCommandRequest& request) {
ASSERT_EQ(request.target, kTestHosts[1]);
auto query =
- assertGet(LiteParsedQuery::makeFromFindCommand(kTestNamespace, request.cmdObj, false));
+ assertGet(QueryRequest::makeFromFindCommand(kTestNamespace, request.cmdObj, false));
ASSERT_EQ(BSON("_id" << 1), query->getFilter());
return vector<BSONObj>();
@@ -234,7 +234,7 @@ TEST_F(InsertRetryTest, DuplicateKeyErrorAfterNetworkErrorMismatch) {
onFindCommand([&](const RemoteCommandRequest& request) {
ASSERT_EQ(request.target, kTestHosts[1]);
auto query =
- assertGet(LiteParsedQuery::makeFromFindCommand(kTestNamespace, request.cmdObj, false));
+ assertGet(QueryRequest::makeFromFindCommand(kTestNamespace, request.cmdObj, false));
ASSERT_EQ(BSON("_id" << 1), query->getFilter());
return vector<BSONObj>{BSON("_id" << 1 << "Value"
@@ -290,7 +290,7 @@ TEST_F(InsertRetryTest, DuplicateKeyErrorAfterWriteConcernFailureMatch) {
onFindCommand([&](const RemoteCommandRequest& request) {
ASSERT_EQ(request.target, kTestHosts[0]);
auto query =
- assertGet(LiteParsedQuery::makeFromFindCommand(kTestNamespace, request.cmdObj, false));
+ assertGet(QueryRequest::makeFromFindCommand(kTestNamespace, request.cmdObj, false));
ASSERT_EQ(BSON("_id" << 1), query->getFilter());
return vector<BSONObj>{objToInsert};
diff --git a/src/mongo/s/chunk_manager.cpp b/src/mongo/s/chunk_manager.cpp
index 5548ea4f642..c9f3af28227 100644
--- a/src/mongo/s/chunk_manager.cpp
+++ b/src/mongo/s/chunk_manager.cpp
@@ -483,10 +483,10 @@ shared_ptr<Chunk> ChunkManager::findIntersectingChunk(OperationContext* txn,
void ChunkManager::getShardIdsForQuery(OperationContext* txn,
const BSONObj& query,
set<ShardId>* shardIds) const {
- auto lpq = stdx::make_unique<LiteParsedQuery>(NamespaceString(_ns));
- lpq->setFilter(query);
+ auto qr = stdx::make_unique<QueryRequest>(NamespaceString(_ns));
+ qr->setFilter(query);
- auto statusWithCQ = CanonicalQuery::canonicalize(txn, std::move(lpq), ExtensionsCallbackNoop());
+ auto statusWithCQ = CanonicalQuery::canonicalize(txn, std::move(qr), ExtensionsCallbackNoop());
uassertStatusOK(statusWithCQ.getStatus());
unique_ptr<CanonicalQuery> cq = std::move(statusWithCQ.getValue());
diff --git a/src/mongo/s/chunk_manager_targeter_test.cpp b/src/mongo/s/chunk_manager_targeter_test.cpp
index 24d2398defa..14a346644eb 100644
--- a/src/mongo/s/chunk_manager_targeter_test.cpp
+++ b/src/mongo/s/chunk_manager_targeter_test.cpp
@@ -61,10 +61,10 @@ unique_ptr<CanonicalQuery> canonicalize(const char* queryStr) {
BSONObj queryObj = fromjson(queryStr);
const NamespaceString nss("test.foo");
- auto lpq = stdx::make_unique<LiteParsedQuery>(nss);
- lpq->setFilter(queryObj);
+ auto qr = stdx::make_unique<QueryRequest>(nss);
+ qr->setFilter(queryObj);
auto statusWithCQ =
- CanonicalQuery::canonicalize(txn.get(), std::move(lpq), ExtensionsCallbackNoop());
+ CanonicalQuery::canonicalize(txn.get(), std::move(qr), ExtensionsCallbackNoop());
ASSERT_OK(statusWithCQ.getStatus());
return std::move(statusWithCQ.getValue());
}
diff --git a/src/mongo/s/client/shard_remote.cpp b/src/mongo/s/client/shard_remote.cpp
index 9a31ee60424..1ed6abe2d41 100644
--- a/src/mongo/s/client/shard_remote.cpp
+++ b/src/mongo/s/client/shard_remote.cpp
@@ -42,7 +42,7 @@
#include "mongo/client/replica_set_monitor.h"
#include "mongo/db/jsobj.h"
#include "mongo/db/operation_context.h"
-#include "mongo/db/query/lite_parsed_query.h"
+#include "mongo/db/query/query_request.h"
#include "mongo/db/repl/read_concern_args.h"
#include "mongo/executor/task_executor_pool.h"
#include "mongo/rpc/get_status_from_command_result.h"
@@ -96,7 +96,7 @@ BSONObj appendMaxTimeToCmdObj(OperationContext* txn, const BSONObj& cmdObj) {
Milliseconds maxTime = kConfigCommandTimeout;
bool hasTxnMaxTime = txn->hasDeadline();
- bool hasUserMaxTime = !cmdObj[LiteParsedQuery::cmdOptionMaxTimeMS].eoo();
+ bool hasUserMaxTime = !cmdObj[QueryRequest::cmdOptionMaxTimeMS].eoo();
if (hasTxnMaxTime) {
maxTime = std::min(maxTime, duration_cast<Milliseconds>(txn->getRemainingMaxTimeMicros()));
@@ -109,7 +109,7 @@ BSONObj appendMaxTimeToCmdObj(OperationContext* txn, const BSONObj& cmdObj) {
}
if (hasUserMaxTime) {
- Milliseconds userMaxTime(cmdObj[LiteParsedQuery::cmdOptionMaxTimeMS].numberLong());
+ Milliseconds userMaxTime(cmdObj[QueryRequest::cmdOptionMaxTimeMS].numberLong());
if (userMaxTime <= maxTime) {
return cmdObj;
}
@@ -118,7 +118,7 @@ BSONObj appendMaxTimeToCmdObj(OperationContext* txn, const BSONObj& cmdObj) {
BSONObjBuilder updatedCmdBuilder;
if (hasUserMaxTime) { // Need to remove user provided maxTimeMS.
BSONObjIterator cmdObjIter(cmdObj);
- const char* maxTimeFieldName = LiteParsedQuery::cmdOptionMaxTimeMS;
+ const char* maxTimeFieldName = QueryRequest::cmdOptionMaxTimeMS;
while (cmdObjIter.more()) {
BSONElement e = cmdObjIter.next();
if (str::equals(e.fieldName(), maxTimeFieldName)) {
@@ -130,7 +130,7 @@ BSONObj appendMaxTimeToCmdObj(OperationContext* txn, const BSONObj& cmdObj) {
updatedCmdBuilder.appendElements(cmdObj);
}
- updatedCmdBuilder.append(LiteParsedQuery::cmdOptionMaxTimeMS,
+ updatedCmdBuilder.append(QueryRequest::cmdOptionMaxTimeMS,
durationCount<Milliseconds>(maxTime));
return updatedCmdBuilder.obj();
}
@@ -323,14 +323,14 @@ StatusWith<Shard::QueryResponse> ShardRemote::_exhaustiveFindOnConfig(
bob.done().getObjectField(repl::ReadConcernArgs::kReadConcernFieldName).getOwned();
}
- auto lpq = stdx::make_unique<LiteParsedQuery>(nss);
- lpq->setFilter(query);
- lpq->setSort(sort);
- lpq->setReadConcern(readConcernObj);
- lpq->setLimit(limit);
+ auto qr = stdx::make_unique<QueryRequest>(nss);
+ qr->setFilter(query);
+ qr->setSort(sort);
+ qr->setReadConcern(readConcernObj);
+ qr->setLimit(limit);
BSONObjBuilder findCmdBuilder;
- lpq->asFindCommand(&findCmdBuilder);
+ qr->asFindCommand(&findCmdBuilder);
Microseconds maxTime = std::min(duration_cast<Microseconds>(kConfigCommandTimeout),
txn->getRemainingMaxTimeMicros());
@@ -340,8 +340,7 @@ StatusWith<Shard::QueryResponse> ShardRemote::_exhaustiveFindOnConfig(
maxTime = Milliseconds{1};
}
- findCmdBuilder.append(LiteParsedQuery::cmdOptionMaxTimeMS,
- durationCount<Milliseconds>(maxTime));
+ findCmdBuilder.append(QueryRequest::cmdOptionMaxTimeMS, durationCount<Milliseconds>(maxTime));
Fetcher fetcher(Grid::get(txn)->getExecutorPool()->getFixedExecutor(),
host.getValue(),
diff --git a/src/mongo/s/commands/cluster_count_cmd.cpp b/src/mongo/s/commands/cluster_count_cmd.cpp
index 32306c3c7e2..4bb96e6b086 100644
--- a/src/mongo/s/commands/cluster_count_cmd.cpp
+++ b/src/mongo/s/commands/cluster_count_cmd.cpp
@@ -144,7 +144,7 @@ public:
}
const std::initializer_list<StringData> passthroughFields = {
- "hint", "$queryOptions", "readConcern", LiteParsedQuery::cmdOptionMaxTimeMS,
+ "hint", "$queryOptions", "readConcern", QueryRequest::cmdOptionMaxTimeMS,
};
for (auto name : passthroughFields) {
if (auto field = cmdObj[name]) {
diff --git a/src/mongo/s/commands/cluster_explain.cpp b/src/mongo/s/commands/cluster_explain.cpp
index 36fb17a0e61..e38a2d072b5 100644
--- a/src/mongo/s/commands/cluster_explain.cpp
+++ b/src/mongo/s/commands/cluster_explain.cpp
@@ -29,7 +29,6 @@
#include "mongo/platform/basic.h"
#include "mongo/bson/bsonmisc.h"
-#include "mongo/db/query/lite_parsed_query.h"
#include "mongo/rpc/metadata/server_selection_metadata.h"
#include "mongo/s/client/shard_registry.h"
#include "mongo/s/commands/cluster_explain.h"
diff --git a/src/mongo/s/commands/cluster_explain_cmd.cpp b/src/mongo/s/commands/cluster_explain_cmd.cpp
index a60bd3c197d..eddac77e971 100644
--- a/src/mongo/s/commands/cluster_explain_cmd.cpp
+++ b/src/mongo/s/commands/cluster_explain_cmd.cpp
@@ -31,7 +31,6 @@
#include "mongo/client/dbclientinterface.h"
#include "mongo/db/commands.h"
#include "mongo/db/query/explain.h"
-#include "mongo/db/query/lite_parsed_query.h"
#include "mongo/rpc/metadata/server_selection_metadata.h"
#include "mongo/s/query/cluster_find.h"
diff --git a/src/mongo/s/commands/cluster_find_cmd.cpp b/src/mongo/s/commands/cluster_find_cmd.cpp
index 2ff26bb1707..1bd898c2c37 100644
--- a/src/mongo/s/commands/cluster_find_cmd.cpp
+++ b/src/mongo/s/commands/cluster_find_cmd.cpp
@@ -111,15 +111,15 @@ public:
str::stream() << "Invalid collection name: " << nss.ns()};
}
- // Parse the command BSON to a LiteParsedQuery.
+ // Parse the command BSON to a QueryRequest.
bool isExplain = true;
- auto lpq = LiteParsedQuery::makeFromFindCommand(std::move(nss), cmdObj, isExplain);
- if (!lpq.isOK()) {
- return lpq.getStatus();
+ auto qr = QueryRequest::makeFromFindCommand(std::move(nss), cmdObj, isExplain);
+ if (!qr.isOK()) {
+ return qr.getStatus();
}
return Strategy::explainFind(
- txn, cmdObj, *lpq.getValue(), verbosity, serverSelectionMetadata, out);
+ txn, cmdObj, *qr.getValue(), verbosity, serverSelectionMetadata, out);
}
bool run(OperationContext* txn,
@@ -139,13 +139,13 @@ public:
}
const bool isExplain = false;
- auto lpq = LiteParsedQuery::makeFromFindCommand(nss, cmdObj, isExplain);
- if (!lpq.isOK()) {
- return appendCommandStatus(result, lpq.getStatus());
+ auto qr = QueryRequest::makeFromFindCommand(nss, cmdObj, isExplain);
+ if (!qr.isOK()) {
+ return appendCommandStatus(result, qr.getStatus());
}
auto cq =
- CanonicalQuery::canonicalize(txn, std::move(lpq.getValue()), ExtensionsCallbackNoop());
+ CanonicalQuery::canonicalize(txn, std::move(qr.getValue()), ExtensionsCallbackNoop());
if (!cq.isOK()) {
return appendCommandStatus(result, cq.getStatus());
}
diff --git a/src/mongo/s/commands/cluster_map_reduce_cmd.cpp b/src/mongo/s/commands/cluster_map_reduce_cmd.cpp
index 352d5969927..cd4e887a979 100644
--- a/src/mongo/s/commands/cluster_map_reduce_cmd.cpp
+++ b/src/mongo/s/commands/cluster_map_reduce_cmd.cpp
@@ -94,7 +94,7 @@ BSONObj fixForShards(const BSONObj& orig,
if (fn == bypassDocumentValidationCommandOption() || fn == "map" || fn == "mapreduce" ||
fn == "mapReduce" || fn == "mapparams" || fn == "reduce" || fn == "query" ||
fn == "sort" || fn == "scope" || fn == "verbose" || fn == "$queryOptions" ||
- fn == "readConcern" || fn == LiteParsedQuery::cmdOptionMaxTimeMS) {
+ fn == "readConcern" || fn == QueryRequest::cmdOptionMaxTimeMS) {
b.append(e);
} else if (fn == "out" || fn == "finalize" || fn == "writeConcern") {
// We don't want to copy these
@@ -406,7 +406,7 @@ public:
BSONObj aggCounts = aggCountsB.done();
finalCmd.append("counts", aggCounts);
- if (auto elem = cmdObj[LiteParsedQuery::cmdOptionMaxTimeMS])
+ if (auto elem = cmdObj[QueryRequest::cmdOptionMaxTimeMS])
finalCmd.append(elem);
if (auto elem = cmdObj[bypassDocumentValidationCommandOption()])
finalCmd.append(elem);
diff --git a/src/mongo/s/commands/cluster_pipeline_cmd.cpp b/src/mongo/s/commands/cluster_pipeline_cmd.cpp
index e4e3dde7fbf..8fb7a896f89 100644
--- a/src/mongo/s/commands/cluster_pipeline_cmd.cpp
+++ b/src/mongo/s/commands/cluster_pipeline_cmd.cpp
@@ -165,7 +165,7 @@ public:
}
const std::initializer_list<StringData> fieldsToPropagateToShards = {
- "$queryOptions", "readConcern", LiteParsedQuery::cmdOptionMaxTimeMS,
+ "$queryOptions", "readConcern", QueryRequest::cmdOptionMaxTimeMS,
};
for (auto&& field : fieldsToPropagateToShards) {
commandBuilder[field] = Value(cmdObj[field]);
@@ -225,9 +225,9 @@ public:
mergeCmd["$queryOptions"] = Value(cmdObj["$queryOptions"]);
}
- if (cmdObj.hasField(LiteParsedQuery::cmdOptionMaxTimeMS)) {
- mergeCmd[LiteParsedQuery::cmdOptionMaxTimeMS] =
- Value(cmdObj[LiteParsedQuery::cmdOptionMaxTimeMS]);
+ if (cmdObj.hasField(QueryRequest::cmdOptionMaxTimeMS)) {
+ mergeCmd[QueryRequest::cmdOptionMaxTimeMS] =
+ Value(cmdObj[QueryRequest::cmdOptionMaxTimeMS]);
}
mergeCmd.setField("writeConcern", Value(cmdObj["writeConcern"]));
diff --git a/src/mongo/s/commands/commands_public.cpp b/src/mongo/s/commands/commands_public.cpp
index a2215e527a4..4e7993a97ee 100644
--- a/src/mongo/s/commands/commands_public.cpp
+++ b/src/mongo/s/commands/commands_public.cpp
@@ -42,7 +42,6 @@
#include "mongo/db/commands/copydb.h"
#include "mongo/db/commands/rename_collection.h"
#include "mongo/db/lasterror.h"
-#include "mongo/db/query/lite_parsed_query.h"
#include "mongo/executor/task_executor_pool.h"
#include "mongo/rpc/get_status_from_command_result.h"
#include "mongo/s/catalog/catalog_cache.h"
diff --git a/src/mongo/s/commands/strategy.cpp b/src/mongo/s/commands/strategy.cpp
index 214b0568849..fcba8883592 100644
--- a/src/mongo/s/commands/strategy.cpp
+++ b/src/mongo/s/commands/strategy.cpp
@@ -49,7 +49,7 @@
#include "mongo/db/namespace_string.h"
#include "mongo/db/query/find_common.h"
#include "mongo/db/query/getmore_request.h"
-#include "mongo/db/query/lite_parsed_query.h"
+#include "mongo/db/query/query_request.h"
#include "mongo/db/server_parameters.h"
#include "mongo/db/stats/counters.h"
#include "mongo/rpc/metadata/server_selection_metadata.h"
@@ -144,8 +144,8 @@ void Strategy::queryOp(OperationContext* txn, Request& request) {
ReadPreferenceSetting readPreference(readPreferenceOption, TagSet());
BSONElement rpElem;
- auto readPrefExtractStatus = bsonExtractTypedField(
- q.query, LiteParsedQuery::kWrappedReadPrefField, mongo::Object, &rpElem);
+ auto readPrefExtractStatus =
+ bsonExtractTypedField(q.query, QueryRequest::kWrappedReadPrefField, mongo::Object, &rpElem);
if (readPrefExtractStatus.isOK()) {
auto parsedRps = ReadPreferenceSetting::fromBSON(rpElem.Obj());
@@ -160,9 +160,9 @@ void Strategy::queryOp(OperationContext* txn, Request& request) {
// If the $explain flag was set, we must run the operation on the shards as an explain command
// rather than a find command.
- if (canonicalQuery.getValue()->getParsed().isExplain()) {
- const LiteParsedQuery& lpq = canonicalQuery.getValue()->getParsed();
- BSONObj findCommand = lpq.asFindCommand();
+ if (canonicalQuery.getValue()->getQueryRequest().isExplain()) {
+ const QueryRequest& qr = canonicalQuery.getValue()->getQueryRequest();
+ BSONObj findCommand = qr.asFindCommand();
// We default to allPlansExecution verbosity.
auto verbosity = ExplainCommon::EXEC_ALL_PLANS;
@@ -172,7 +172,7 @@ void Strategy::queryOp(OperationContext* txn, Request& request) {
BSONObjBuilder explainBuilder;
uassertStatusOK(
- Strategy::explainFind(txn, findCommand, lpq, verbosity, metadata, &explainBuilder));
+ Strategy::explainFind(txn, findCommand, qr, verbosity, metadata, &explainBuilder));
BSONObj explainObj = explainBuilder.done();
replyToQuery(0, // query result flags
@@ -507,7 +507,7 @@ void Strategy::writeOp(OperationContext* txn, int op, Request& request) {
Status Strategy::explainFind(OperationContext* txn,
const BSONObj& findCommand,
- const LiteParsedQuery& lpq,
+ const QueryRequest& qr,
ExplainCommon::Verbosity verbosity,
const rpc::ServerSelectionMetadata& serverSelectionMetadata,
BSONObjBuilder* out) {
@@ -521,11 +521,11 @@ Status Strategy::explainFind(OperationContext* txn,
std::vector<Strategy::CommandResult> shardResults;
Strategy::commandOp(txn,
- lpq.nss().db().toString(),
+ qr.nss().db().toString(),
explainCmdBob.obj(),
options,
- lpq.nss().toString(),
- lpq.getFilter(),
+ qr.nss().toString(),
+ qr.getFilter(),
&shardResults);
long long millisElapsed = timer.millis();
diff --git a/src/mongo/s/commands/strategy.h b/src/mongo/s/commands/strategy.h
index ebd9e36c520..f45031e2e0f 100644
--- a/src/mongo/s/commands/strategy.h
+++ b/src/mongo/s/commands/strategy.h
@@ -36,9 +36,9 @@
namespace mongo {
-class LiteParsedQuery;
class OperationContext;
class QueryMessage;
+class QueryRequest;
class Request;
namespace rpc {
@@ -68,7 +68,7 @@ public:
*/
static Status explainFind(OperationContext* txn,
const BSONObj& findCommand,
- const LiteParsedQuery& lpq,
+ const QueryRequest& qr,
ExplainCommon::Verbosity verbosity,
const rpc::ServerSelectionMetadata& serverSelectionMetadata,
BSONObjBuilder* out);
diff --git a/src/mongo/s/query/SConscript b/src/mongo/s/query/SConscript
index ae3d0c3e786..d2f2a03f3ed 100644
--- a/src/mongo/s/query/SConscript
+++ b/src/mongo/s/query/SConscript
@@ -87,7 +87,7 @@ env.CppUnitTest(
LIBDEPS=[
'async_results_merger',
'$BUILD_DIR/mongo/db/auth/authorization_manager_mock_init',
- '$BUILD_DIR/mongo/db/query/lite_parsed_query',
+ '$BUILD_DIR/mongo/db/query/query_request',
'$BUILD_DIR/mongo/db/service_context_noop_init',
'$BUILD_DIR/mongo/executor/thread_pool_task_executor_test_fixture',
'$BUILD_DIR/mongo/s/mongoscore',
diff --git a/src/mongo/s/query/async_results_merger_test.cpp b/src/mongo/s/query/async_results_merger_test.cpp
index 7159d6c0271..fc5a8989a61 100644
--- a/src/mongo/s/query/async_results_merger_test.cpp
+++ b/src/mongo/s/query/async_results_merger_test.cpp
@@ -35,7 +35,7 @@
#include "mongo/db/json.h"
#include "mongo/db/query/cursor_response.h"
#include "mongo/db/query/getmore_request.h"
-#include "mongo/db/query/lite_parsed_query.h"
+#include "mongo/db/query/query_request.h"
#include "mongo/executor/network_interface_mock.h"
#include "mongo/executor/task_executor.h"
#include "mongo/executor/thread_pool_task_executor_test_fixture.h"
@@ -105,17 +105,17 @@ protected:
boost::optional<long long> getMoreBatchSize = boost::none,
ReadPreferenceSetting readPref = ReadPreferenceSetting(ReadPreference::PrimaryOnly)) {
const bool isExplain = true;
- const auto lpq =
- unittest::assertGet(LiteParsedQuery::makeFromFindCommand(_nss, findCmd, isExplain));
+ const auto qr =
+ unittest::assertGet(QueryRequest::makeFromFindCommand(_nss, findCmd, isExplain));
ClusterClientCursorParams params = ClusterClientCursorParams(_nss, readPref);
- params.sort = lpq->getSort();
- params.limit = lpq->getLimit();
- params.batchSize = getMoreBatchSize ? getMoreBatchSize : lpq->getBatchSize();
- params.skip = lpq->getSkip();
- params.isTailable = lpq->isTailable();
- params.isAwaitData = lpq->isAwaitData();
- params.isAllowPartialResults = lpq->isAllowPartialResults();
+ params.sort = qr->getSort();
+ params.limit = qr->getLimit();
+ params.batchSize = getMoreBatchSize ? getMoreBatchSize : qr->getBatchSize();
+ params.skip = qr->getSkip();
+ params.isTailable = qr->isTailable();
+ params.isAwaitData = qr->isAwaitData();
+ params.isAllowPartialResults = qr->isAllowPartialResults();
for (const auto& shardId : shardIds) {
params.remotes.emplace_back(shardId, findCmd);
diff --git a/src/mongo/s/query/cluster_find.cpp b/src/mongo/s/query/cluster_find.cpp
index 18f44d9e510..7163f76281e 100644
--- a/src/mongo/s/query/cluster_find.cpp
+++ b/src/mongo/s/query/cluster_find.cpp
@@ -74,75 +74,75 @@ static const BSONObj kSortKeyMetaProjection = BSON("$meta"
static const int kPerDocumentOverheadBytesUpperBound = 10;
/**
- * Given the LiteParsedQuery 'lpq' being executed by mongos, returns a copy of the query which is
+ * Given the QueryRequest 'qr' being executed by mongos, returns a copy of the query which is
* suitable for forwarding to the targeted hosts.
*/
-StatusWith<std::unique_ptr<LiteParsedQuery>> transformQueryForShards(const LiteParsedQuery& lpq) {
+StatusWith<std::unique_ptr<QueryRequest>> transformQueryForShards(const QueryRequest& qr) {
// If there is a limit, we forward the sum of the limit and the skip.
boost::optional<long long> newLimit;
- if (lpq.getLimit()) {
+ if (qr.getLimit()) {
long long newLimitValue;
- if (mongoSignedAddOverflow64(*lpq.getLimit(), lpq.getSkip().value_or(0), &newLimitValue)) {
+ if (mongoSignedAddOverflow64(*qr.getLimit(), qr.getSkip().value_or(0), &newLimitValue)) {
return Status(
ErrorCodes::Overflow,
str::stream()
<< "sum of limit and skip cannot be represented as a 64-bit integer, limit: "
- << *lpq.getLimit()
+ << *qr.getLimit()
<< ", skip: "
- << lpq.getSkip().value_or(0));
+ << qr.getSkip().value_or(0));
}
newLimit = newLimitValue;
}
// Similarly, if nToReturn is set, we forward the sum of nToReturn and the skip.
boost::optional<long long> newNToReturn;
- if (lpq.getNToReturn()) {
+ if (qr.getNToReturn()) {
// !wantMore and ntoreturn mean the same as !wantMore and limit, so perform the conversion.
- if (!lpq.wantMore()) {
+ if (!qr.wantMore()) {
long long newLimitValue;
if (mongoSignedAddOverflow64(
- *lpq.getNToReturn(), lpq.getSkip().value_or(0), &newLimitValue)) {
+ *qr.getNToReturn(), qr.getSkip().value_or(0), &newLimitValue)) {
return Status(ErrorCodes::Overflow,
str::stream()
<< "sum of ntoreturn and skip cannot be represented as a 64-bit "
"integer, ntoreturn: "
- << *lpq.getNToReturn()
+ << *qr.getNToReturn()
<< ", skip: "
- << lpq.getSkip().value_or(0));
+ << qr.getSkip().value_or(0));
}
newLimit = newLimitValue;
} else {
long long newNToReturnValue;
if (mongoSignedAddOverflow64(
- *lpq.getNToReturn(), lpq.getSkip().value_or(0), &newNToReturnValue)) {
+ *qr.getNToReturn(), qr.getSkip().value_or(0), &newNToReturnValue)) {
return Status(ErrorCodes::Overflow,
str::stream()
<< "sum of ntoreturn and skip cannot be represented as a 64-bit "
"integer, ntoreturn: "
- << *lpq.getNToReturn()
+ << *qr.getNToReturn()
<< ", skip: "
- << lpq.getSkip().value_or(0));
+ << qr.getSkip().value_or(0));
}
newNToReturn = newNToReturnValue;
}
}
// If there is a sort other than $natural, we send a sortKey meta-projection to the remote node.
- BSONObj newProjection = lpq.getProj();
- if (!lpq.getSort().isEmpty() && !lpq.getSort()["$natural"]) {
+ BSONObj newProjection = qr.getProj();
+ if (!qr.getSort().isEmpty() && !qr.getSort()["$natural"]) {
BSONObjBuilder projectionBuilder;
- projectionBuilder.appendElements(lpq.getProj());
+ projectionBuilder.appendElements(qr.getProj());
projectionBuilder.append(ClusterClientCursorParams::kSortKeyField, kSortKeyMetaProjection);
newProjection = projectionBuilder.obj();
}
- auto newLPQ = stdx::make_unique<LiteParsedQuery>(lpq);
- newLPQ->setProj(newProjection);
- newLPQ->setSkip(boost::none);
- newLPQ->setLimit(newLimit);
- newLPQ->setNToReturn(newNToReturn);
- invariantOK(newLPQ->validate());
- return std::move(newLPQ);
+ auto newQR = stdx::make_unique<QueryRequest>(qr);
+ newQR->setProj(newProjection);
+ newQR->setSkip(boost::none);
+ newQR->setLimit(newLimit);
+ newQR->setNToReturn(newNToReturn);
+ invariantOK(newQR->validate());
+ return std::move(newQR);
}
StatusWith<CursorId> runQueryWithoutRetrying(OperationContext* txn,
@@ -161,7 +161,7 @@ StatusWith<CursorId> runQueryWithoutRetrying(OperationContext* txn,
invariant(chunkManager);
std::set<ShardId> shardIds;
- chunkManager->getShardIdsForQuery(txn, query.getParsed().getFilter(), &shardIds);
+ chunkManager->getShardIdsForQuery(txn, query.getQueryRequest().getFilter(), &shardIds);
for (auto id : shardIds) {
auto shard = shardRegistry->getShard(txn, id);
@@ -174,12 +174,12 @@ StatusWith<CursorId> runQueryWithoutRetrying(OperationContext* txn,
}
ClusterClientCursorParams params(query.nss(), readPref);
- params.limit = query.getParsed().getLimit();
- params.batchSize = query.getParsed().getEffectiveBatchSize();
- params.skip = query.getParsed().getSkip();
- params.isTailable = query.getParsed().isTailable();
- params.isAwaitData = query.getParsed().isAwaitData();
- params.isAllowPartialResults = query.getParsed().isAllowPartialResults();
+ params.limit = query.getQueryRequest().getLimit();
+ params.batchSize = query.getQueryRequest().getEffectiveBatchSize();
+ params.skip = query.getQueryRequest().getSkip();
+ params.isTailable = query.getQueryRequest().isTailable();
+ params.isAwaitData = query.getQueryRequest().isAwaitData();
+ params.isAllowPartialResults = query.getQueryRequest().isAllowPartialResults();
// This is the batchSize passed to each subsequent getMore command issued by the cursor. We
// usually use the batchSize associated with the initial find, but as it is illegal to send a
@@ -191,16 +191,16 @@ StatusWith<CursorId> runQueryWithoutRetrying(OperationContext* txn,
// $natural sort is actually a hint to use a collection scan, and shouldn't be treated like a
// sort on mongos. Including a $natural anywhere in the sort spec results in the whole sort
// being considered a hint to use a collection scan.
- if (!query.getParsed().getSort().hasField("$natural")) {
- params.sort = FindCommon::transformSortSpec(query.getParsed().getSort());
+ if (!query.getQueryRequest().getSort().hasField("$natural")) {
+ params.sort = FindCommon::transformSortSpec(query.getQueryRequest().getSort());
}
// Tailable cursors can't have a sort, which should have already been validated.
invariant(params.sort.isEmpty() || !params.isTailable);
- const auto lpqToForward = transformQueryForShards(query.getParsed());
- if (!lpqToForward.isOK()) {
- return lpqToForward.getStatus();
+ const auto qrToForward = transformQueryForShards(query.getQueryRequest());
+ if (!qrToForward.isOK()) {
+ return qrToForward.getStatus();
}
// Use read pref to target a particular host from each shard. Also construct the find command
@@ -210,7 +210,7 @@ StatusWith<CursorId> runQueryWithoutRetrying(OperationContext* txn,
// Build the find command, and attach shard version if necessary.
BSONObjBuilder cmdBuilder;
- lpqToForward.getValue()->asFindCommand(&cmdBuilder);
+ qrToForward.getValue()->asFindCommand(&cmdBuilder);
if (chunkManager) {
ChunkVersion version(chunkManager->getVersion(shard->getId()));
@@ -228,7 +228,7 @@ StatusWith<CursorId> runQueryWithoutRetrying(OperationContext* txn,
auto cursorState = ClusterCursorManager::CursorState::NotExhausted;
int bytesBuffered = 0;
- while (!FindCommon::enoughForFirstBatch(query.getParsed(), results->size())) {
+ while (!FindCommon::enoughForFirstBatch(query.getQueryRequest(), results->size())) {
auto next = ccc->next();
if (!next.isOK()) {
return next.getStatus();
@@ -258,7 +258,7 @@ StatusWith<CursorId> runQueryWithoutRetrying(OperationContext* txn,
results->push_back(std::move(*next.getValue()));
}
- if (!query.getParsed().wantMore() && !ccc->isTailable()) {
+ if (!query.getQueryRequest().wantMore() && !ccc->isTailable()) {
cursorState = ClusterCursorManager::CursorState::Exhausted;
}
@@ -272,7 +272,7 @@ StatusWith<CursorId> runQueryWithoutRetrying(OperationContext* txn,
auto cursorManager = grid.getCursorManager();
const auto cursorType = chunkManager ? ClusterCursorManager::CursorType::NamespaceSharded
: ClusterCursorManager::CursorType::NamespaceNotSharded;
- const auto cursorLifetime = query.getParsed().isNoCursorTimeout()
+ const auto cursorLifetime = query.getQueryRequest().isNoCursorTimeout()
? ClusterCursorManager::CursorLifetime::Immortal
: ClusterCursorManager::CursorLifetime::Mortal;
return cursorManager->registerCursor(
@@ -290,12 +290,12 @@ StatusWith<CursorId> ClusterFind::runQuery(OperationContext* txn,
invariant(results);
// Projection on the reserved sort key field is illegal in mongos.
- if (query.getParsed().getProj().hasField(ClusterClientCursorParams::kSortKeyField)) {
+ if (query.getQueryRequest().getProj().hasField(ClusterClientCursorParams::kSortKeyField)) {
return {ErrorCodes::BadValue,
str::stream() << "Projection contains illegal field '"
<< ClusterClientCursorParams::kSortKeyField
<< "': "
- << query.getParsed().getProj()};
+ << query.getQueryRequest().getProj()};
}
auto dbConfig = grid.catalogCache()->getDatabase(txn, query.nss().db().toString());
@@ -417,14 +417,13 @@ StatusWith<ReadPreferenceSetting> ClusterFind::extractUnwrappedReadPref(const BS
const bool isSlaveOk) {
BSONElement queryOptionsElt;
auto status = bsonExtractTypedField(
- cmdObj, LiteParsedQuery::kUnwrappedReadPrefField, BSONType::Object, &queryOptionsElt);
+ cmdObj, QueryRequest::kUnwrappedReadPrefField, BSONType::Object, &queryOptionsElt);
if (status.isOK()) {
// There must be a nested object containing the read preference if there is a queryOptions
// field.
BSONObj queryOptionsObj = queryOptionsElt.Obj();
- invariant(queryOptionsObj[LiteParsedQuery::kWrappedReadPrefField].type() ==
- BSONType::Object);
- BSONObj readPrefObj = queryOptionsObj[LiteParsedQuery::kWrappedReadPrefField].Obj();
+ invariant(queryOptionsObj[QueryRequest::kWrappedReadPrefField].type() == BSONType::Object);
+ BSONObj readPrefObj = queryOptionsObj[QueryRequest::kWrappedReadPrefField].Obj();
auto readPref = ReadPreferenceSetting::fromBSON(readPrefObj);
if (!readPref.isOK()) {
diff --git a/src/mongo/s/set_shard_version_request.cpp b/src/mongo/s/set_shard_version_request.cpp
index f6afef3b4e4..b21c4423a84 100644
--- a/src/mongo/s/set_shard_version_request.cpp
+++ b/src/mongo/s/set_shard_version_request.cpp
@@ -34,7 +34,7 @@
#include "mongo/bson/bsonobj.h"
#include "mongo/bson/bsonobjbuilder.h"
#include "mongo/bson/util/bson_extract.h"
-#include "mongo/db/query/lite_parsed_query.h"
+#include "mongo/db/query/query_request.h"
#include "mongo/util/assert_util.h"
#include "mongo/util/mongoutils/str.h"
@@ -218,7 +218,7 @@ BSONObj SetShardVersionRequest::toBSON() const {
if (_init) {
// Always include a 30 second timeout on sharding state initialization, to work around
// SERVER-21458.
- cmdBuilder.append(LiteParsedQuery::cmdOptionMaxTimeMS, 30000);
+ cmdBuilder.append(QueryRequest::cmdOptionMaxTimeMS, 30000);
} else {
_version.get().appendForSetShardVersion(&cmdBuilder);
}
diff --git a/src/mongo/s/shard_key_pattern.cpp b/src/mongo/s/shard_key_pattern.cpp
index 607f2fc2a42..3ec6bd8809e 100644
--- a/src/mongo/s/shard_key_pattern.cpp
+++ b/src/mongo/s/shard_key_pattern.cpp
@@ -270,10 +270,10 @@ StatusWith<BSONObj> ShardKeyPattern::extractShardKeyFromQuery(OperationContext*
if (!isValid())
return StatusWith<BSONObj>(BSONObj());
- auto lpq = stdx::make_unique<LiteParsedQuery>(NamespaceString(""));
- lpq->setFilter(basicQuery);
+ auto qr = stdx::make_unique<QueryRequest>(NamespaceString(""));
+ qr->setFilter(basicQuery);
- auto statusWithCQ = CanonicalQuery::canonicalize(txn, std::move(lpq), ExtensionsCallbackNoop());
+ auto statusWithCQ = CanonicalQuery::canonicalize(txn, std::move(qr), ExtensionsCallbackNoop());
if (!statusWithCQ.isOK()) {
return StatusWith<BSONObj>(statusWithCQ.getStatus());
}
diff --git a/src/mongo/s/sharding_test_fixture.cpp b/src/mongo/s/sharding_test_fixture.cpp
index 3c6660fcc61..60347c00b03 100644
--- a/src/mongo/s/sharding_test_fixture.cpp
+++ b/src/mongo/s/sharding_test_fixture.cpp
@@ -39,7 +39,7 @@
#include "mongo/db/client.h"
#include "mongo/db/commands.h"
#include "mongo/db/namespace_string.h"
-#include "mongo/db/query/lite_parsed_query.h"
+#include "mongo/db/query/query_request.h"
#include "mongo/db/repl/read_concern_args.h"
#include "mongo/db/service_context_noop.h"
#include "mongo/executor/network_interface_mock.h"
@@ -283,7 +283,7 @@ void ShardingTestFixture::expectGetShards(const std::vector<ShardType>& shards)
const NamespaceString nss(request.dbname, request.cmdObj.firstElement().String());
ASSERT_EQ(nss.toString(), ShardType::ConfigNS);
- auto queryResult = LiteParsedQuery::makeFromFindCommand(nss, request.cmdObj, false);
+ auto queryResult = QueryRequest::makeFromFindCommand(nss, request.cmdObj, false);
ASSERT_OK(queryResult.getStatus());
const auto& query = queryResult.getValue();