summaryrefslogtreecommitdiff
path: root/src/mongo/s/commands
diff options
context:
space:
mode:
authorDavid Storch <david.storch@mongodb.com>2023-04-13 21:47:43 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-04-13 22:27:19 +0000
commit33e6eec5978a20a4b227c36f26b0ae909e8e6728 (patch)
treefffb4cf2592f030806854fe6a381bb21010319c5 /src/mongo/s/commands
parent122f7b197a85159492b86d971305c51deb667a57 (diff)
downloadmongo-33e6eec5978a20a4b227c36f26b0ae909e8e6728.tar.gz
SERVER-75356 Fix sharded explain path's handling of 'let' parameters
Diffstat (limited to 'src/mongo/s/commands')
-rw-r--r--src/mongo/s/commands/cluster_analyze_cmd.cpp6
-rw-r--r--src/mongo/s/commands/cluster_coll_stats_cmd.cpp6
-rw-r--r--src/mongo/s/commands/cluster_convert_to_capped_cmd.cpp6
-rw-r--r--src/mongo/s/commands/cluster_count_cmd.h8
-rw-r--r--src/mongo/s/commands/cluster_create_indexes_cmd.cpp6
-rw-r--r--src/mongo/s/commands/cluster_data_size_cmd.cpp6
-rw-r--r--src/mongo/s/commands/cluster_distinct_cmd.cpp6
-rw-r--r--src/mongo/s/commands/cluster_filemd5_cmd.cpp4
-rw-r--r--src/mongo/s/commands/cluster_find_cmd.h4
-rw-r--r--src/mongo/s/commands/cluster_index_filter_cmd.cpp4
-rw-r--r--src/mongo/s/commands/cluster_plan_cache_clear_cmd.cpp4
-rw-r--r--src/mongo/s/commands/cluster_set_index_commit_quorum_cmd.cpp6
-rw-r--r--src/mongo/s/commands/cluster_validate_cmd.cpp6
13 files changed, 51 insertions, 21 deletions
diff --git a/src/mongo/s/commands/cluster_analyze_cmd.cpp b/src/mongo/s/commands/cluster_analyze_cmd.cpp
index ea0ccdb84a7..208d7df1621 100644
--- a/src/mongo/s/commands/cluster_analyze_cmd.cpp
+++ b/src/mongo/s/commands/cluster_analyze_cmd.cpp
@@ -91,8 +91,10 @@ public:
CommandHelpers::filterCommandRequestForPassthrough(unparsedRequest().body)),
ReadPreferenceSetting::get(opCtx),
Shard::RetryPolicy::kIdempotent,
- BSONObj() /* query */,
- BSONObj() /* collation */);
+ BSONObj() /*query*/,
+ BSONObj() /*collation*/,
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/);
for (const auto& shardResult : shardResponses) {
const auto& shardResponse = uassertStatusOK(std::move(shardResult.swResponse));
diff --git a/src/mongo/s/commands/cluster_coll_stats_cmd.cpp b/src/mongo/s/commands/cluster_coll_stats_cmd.cpp
index d830e04415c..2f0d84ed2ad 100644
--- a/src/mongo/s/commands/cluster_coll_stats_cmd.cpp
+++ b/src/mongo/s/commands/cluster_coll_stats_cmd.cpp
@@ -247,8 +247,10 @@ public:
opCtx, this, CommandHelpers::filterCommandRequestForPassthrough(cmdObjToSend)),
ReadPreferenceSetting::get(opCtx),
Shard::RetryPolicy::kIdempotent,
- {},
- {});
+ {} /*query*/,
+ {} /*collation*/,
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/);
BSONObjBuilder shardStats;
std::map<std::string, long long> counts;
diff --git a/src/mongo/s/commands/cluster_convert_to_capped_cmd.cpp b/src/mongo/s/commands/cluster_convert_to_capped_cmd.cpp
index 6fa1d62d5d7..30e8e904bbd 100644
--- a/src/mongo/s/commands/cluster_convert_to_capped_cmd.cpp
+++ b/src/mongo/s/commands/cluster_convert_to_capped_cmd.cpp
@@ -60,8 +60,10 @@ bool nonShardedCollectionCommandPassthrough(OperationContext* opCtx,
cmdObj,
ReadPreferenceSetting::get(opCtx),
retryPolicy,
- {},
- {});
+ {} /*query*/,
+ {} /*collation*/,
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/);
invariant(responses.size() == 1);
const auto cmdResponse = uassertStatusOK(std::move(responses.front().swResponse));
diff --git a/src/mongo/s/commands/cluster_count_cmd.h b/src/mongo/s/commands/cluster_count_cmd.h
index 1325c89a21e..045b1895728 100644
--- a/src/mongo/s/commands/cluster_count_cmd.h
+++ b/src/mongo/s/commands/cluster_count_cmd.h
@@ -152,7 +152,9 @@ public:
Shard::RetryPolicy::kIdempotent,
countRequest.getQuery(),
collation,
- true /* eligibleForSampling */);
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/,
+ true /*eligibleForSampling*/);
} catch (const ExceptionFor<ErrorCodes::CommandOnShardedViewNotSupportedOnMongod>& ex) {
// Rewrite the count command as an aggregation.
auto countRequest = CountCommandRequest::parse(IDLParserContext("count"), cmdObj);
@@ -260,7 +262,9 @@ public:
ReadPreferenceSetting::get(opCtx),
Shard::RetryPolicy::kIdempotent,
targetingQuery,
- targetingCollation);
+ targetingCollation,
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/);
} catch (const ExceptionFor<ErrorCodes::CommandOnShardedViewNotSupportedOnMongod>& ex) {
CountCommandRequest countRequest(NamespaceStringOrUUID(NamespaceString{}));
try {
diff --git a/src/mongo/s/commands/cluster_create_indexes_cmd.cpp b/src/mongo/s/commands/cluster_create_indexes_cmd.cpp
index e07aa1700e0..095ccd6bbe9 100644
--- a/src/mongo/s/commands/cluster_create_indexes_cmd.cpp
+++ b/src/mongo/s/commands/cluster_create_indexes_cmd.cpp
@@ -121,8 +121,10 @@ public:
applyReadWriteConcern(opCtx, this, cmdToBeSent)),
ReadPreferenceSetting(ReadPreference::PrimaryOnly),
Shard::RetryPolicy::kNoRetry,
- BSONObj() /* query */,
- BSONObj() /* collation */);
+ BSONObj() /*query*/,
+ BSONObj() /*collation*/,
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/);
std::string errmsg;
const bool ok =
diff --git a/src/mongo/s/commands/cluster_data_size_cmd.cpp b/src/mongo/s/commands/cluster_data_size_cmd.cpp
index dda5ed02fcf..057f9e8ad73 100644
--- a/src/mongo/s/commands/cluster_data_size_cmd.cpp
+++ b/src/mongo/s/commands/cluster_data_size_cmd.cpp
@@ -88,8 +88,10 @@ public:
CommandHelpers::filterCommandRequestForPassthrough(cmd.toBSON({}))),
ReadPreferenceSetting::get(opCtx),
Shard::RetryPolicy::kIdempotent,
- {},
- {});
+ {} /*query*/,
+ {} /*collation*/,
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/);
std::int64_t size = 0;
std::int64_t numObjects = 0;
diff --git a/src/mongo/s/commands/cluster_distinct_cmd.cpp b/src/mongo/s/commands/cluster_distinct_cmd.cpp
index 3c9ff302f7a..5fb9a701419 100644
--- a/src/mongo/s/commands/cluster_distinct_cmd.cpp
+++ b/src/mongo/s/commands/cluster_distinct_cmd.cpp
@@ -146,7 +146,9 @@ public:
ReadPreferenceSetting::get(opCtx),
Shard::RetryPolicy::kIdempotent,
targetingQuery,
- targetingCollation);
+ targetingCollation,
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/);
} catch (const ExceptionFor<ErrorCodes::CommandOnShardedViewNotSupportedOnMongod>& ex) {
auto parsedDistinct = ParsedDistinct::parse(
opCtx, ex->getNamespace(), cmdObj, ExtensionsCallbackNoop(), true);
@@ -234,6 +236,8 @@ public:
Shard::RetryPolicy::kIdempotent,
query,
collation,
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/,
true /* eligibleForSampling */);
} catch (const ExceptionFor<ErrorCodes::CommandOnShardedViewNotSupportedOnMongod>& ex) {
auto parsedDistinct = ParsedDistinct::parse(
diff --git a/src/mongo/s/commands/cluster_filemd5_cmd.cpp b/src/mongo/s/commands/cluster_filemd5_cmd.cpp
index 63b5a2a5033..12ab9f07730 100644
--- a/src/mongo/s/commands/cluster_filemd5_cmd.cpp
+++ b/src/mongo/s/commands/cluster_filemd5_cmd.cpp
@@ -107,7 +107,9 @@ public:
ReadPreferenceSetting::get(opCtx),
Shard::RetryPolicy::kIdempotent,
routingQuery,
- CollationSpec::kSimpleSpec);
+ CollationSpec::kSimpleSpec,
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/);
invariant(shardResults.size() == 1);
const auto shardResponse = uassertStatusOK(std::move(shardResults[0].swResponse));
uassertStatusOK(shardResponse.status);
diff --git a/src/mongo/s/commands/cluster_find_cmd.h b/src/mongo/s/commands/cluster_find_cmd.h
index e8ed843575a..cd46d911895 100644
--- a/src/mongo/s/commands/cluster_find_cmd.h
+++ b/src/mongo/s/commands/cluster_find_cmd.h
@@ -161,7 +161,9 @@ public:
ReadPreferenceSetting::get(opCtx),
Shard::RetryPolicy::kIdempotent,
findCommand->getFilter(),
- findCommand->getCollation());
+ findCommand->getCollation(),
+ findCommand->getLet(),
+ findCommand->getLegacyRuntimeConstants());
millisElapsed = timer.millis();
const char* mongosStageName =
diff --git a/src/mongo/s/commands/cluster_index_filter_cmd.cpp b/src/mongo/s/commands/cluster_index_filter_cmd.cpp
index f2a1bf18dba..cd81e568d77 100644
--- a/src/mongo/s/commands/cluster_index_filter_cmd.cpp
+++ b/src/mongo/s/commands/cluster_index_filter_cmd.cpp
@@ -101,7 +101,9 @@ public:
ReadPreferenceSetting::get(opCtx),
Shard::RetryPolicy::kIdempotent,
query,
- CollationSpec::kSimpleSpec);
+ CollationSpec::kSimpleSpec,
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/);
// Sort shard responses by shard id.
std::sort(shardResponses.begin(),
diff --git a/src/mongo/s/commands/cluster_plan_cache_clear_cmd.cpp b/src/mongo/s/commands/cluster_plan_cache_clear_cmd.cpp
index b1e9ff01062..5e75487858c 100644
--- a/src/mongo/s/commands/cluster_plan_cache_clear_cmd.cpp
+++ b/src/mongo/s/commands/cluster_plan_cache_clear_cmd.cpp
@@ -105,7 +105,9 @@ bool ClusterPlanCacheClearCmd::run(OperationContext* opCtx,
ReadPreferenceSetting::get(opCtx),
Shard::RetryPolicy::kIdempotent,
query,
- CollationSpec::kSimpleSpec);
+ CollationSpec::kSimpleSpec,
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/);
// Sort shard responses by shard id.
std::sort(shardResponses.begin(),
diff --git a/src/mongo/s/commands/cluster_set_index_commit_quorum_cmd.cpp b/src/mongo/s/commands/cluster_set_index_commit_quorum_cmd.cpp
index 3cd1e398325..e60c92d29d8 100644
--- a/src/mongo/s/commands/cluster_set_index_commit_quorum_cmd.cpp
+++ b/src/mongo/s/commands/cluster_set_index_commit_quorum_cmd.cpp
@@ -116,8 +116,10 @@ public:
opCtx, this, CommandHelpers::filterCommandRequestForPassthrough(cmdObj)),
ReadPreferenceSetting::get(opCtx),
Shard::RetryPolicy::kNotIdempotent,
- BSONObj() /* query */,
- BSONObj() /* collation */);
+ BSONObj() /*query*/,
+ BSONObj() /*collation*/,
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/);
std::string errmsg;
const bool ok =
diff --git a/src/mongo/s/commands/cluster_validate_cmd.cpp b/src/mongo/s/commands/cluster_validate_cmd.cpp
index 3d9e62e8e45..36512d0c920 100644
--- a/src/mongo/s/commands/cluster_validate_cmd.cpp
+++ b/src/mongo/s/commands/cluster_validate_cmd.cpp
@@ -91,8 +91,10 @@ public:
opCtx, this, CommandHelpers::filterCommandRequestForPassthrough(cmdObj)),
ReadPreferenceSetting::get(opCtx),
Shard::RetryPolicy::kIdempotent,
- {},
- {});
+ {} /*query*/,
+ {} /*collation*/,
+ boost::none /*letParameters*/,
+ boost::none /*runtimeConstants*/);
Status firstFailedShardStatus = Status::OK();
bool isValid = true;