summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jstests/noPassthrough/lookup_pushdown.js20
-rw-r--r--jstests/noPassthrough/query_knobs_validation.js4
-rw-r--r--jstests/noPassthrough/sbe_plan_cache_clear_on_param_change.js1
-rw-r--r--src/mongo/db/commands/run_aggregate.cpp4
-rw-r--r--src/mongo/db/pipeline/pipeline_d.cpp4
-rw-r--r--src/mongo/db/pipeline/process_interface/common_mongod_process_interface.cpp4
-rw-r--r--src/mongo/db/query/query_knobs.idl7
7 files changed, 3 insertions, 41 deletions
diff --git a/jstests/noPassthrough/lookup_pushdown.js b/jstests/noPassthrough/lookup_pushdown.js
index b2a2760f99b..a918b571543 100644
--- a/jstests/noPassthrough/lookup_pushdown.js
+++ b/jstests/noPassthrough/lookup_pushdown.js
@@ -128,26 +128,6 @@ assert.commandWorked(foreignColl.insert(foreignDocs));
assert.commandWorked(db.createView(viewName, foreignCollName, [{$match: {b: {$gte: 0}}}]));
let view = db[viewName];
-function setLookupPushdownDisabled(value) {
- assert.commandWorked(db.adminCommand(
- {setParameter: 1, internalQuerySlotBasedExecutionDisableLookupPushdown: value}));
-}
-
-(function testLookupPushdownQueryKnob() {
- const lookupPushdownDisabled =
- assert
- .commandWorked(db.adminCommand(
- {getParameter: 1, internalQuerySlotBasedExecutionDisableLookupPushdown: 1}))
- .internalQuerySlotBasedExecutionDisableLookupPushdown;
- const pipeline =
- [{$lookup: {from: foreignCollName, localField: "a", foreignField: "b", as: "out"}}];
- setLookupPushdownDisabled(true);
- runTest(coll, pipeline, JoinAlgorithm.Classic /* expectedJoinAlgorithm */);
- setLookupPushdownDisabled(false);
- runTest(coll, pipeline, JoinAlgorithm.NLJ /* expectedJoinAlgorithm */);
- setLookupPushdownDisabled(lookupPushdownDisabled);
-}());
-
(function testLookupPushdownBasicCases() {
// Basic $lookup.
runTest(coll,
diff --git a/jstests/noPassthrough/query_knobs_validation.js b/jstests/noPassthrough/query_knobs_validation.js
index e938cf4b390..72d16b36a50 100644
--- a/jstests/noPassthrough/query_knobs_validation.js
+++ b/jstests/noPassthrough/query_knobs_validation.js
@@ -56,7 +56,6 @@ const expectedParamDefaults = {
internalQueryMaxNumberOfFieldsToChooseUnfilteredColumnScan: 5,
internalQueryMaxNumberOfFieldsToChooseFilteredColumnScan: 12,
internalQueryDisableLookupExecutionUsingHashJoin: false,
- internalQuerySlotBasedExecutionDisableLookupPushdown: false,
};
function assertDefaultParameterValues() {
@@ -231,9 +230,6 @@ assertSetParameterFails("internalQueryCollectionMaxStorageSizeBytesToChooseHashJ
assertSetParameterSucceeds("internalQueryDisableLookupExecutionUsingHashJoin", true);
assertSetParameterSucceeds("internalQueryDisableLookupExecutionUsingHashJoin", false);
-assertSetParameterSucceeds("internalQuerySlotBasedExecutionDisableLookupPushdown", true);
-assertSetParameterSucceeds("internalQuerySlotBasedExecutionDisableLookupPushdown", false);
-
assertSetParameterSucceeds("internalQueryMaxNumberOfFieldsToChooseUnfilteredColumnScan", 100);
assertSetParameterSucceeds("internalQueryMaxNumberOfFieldsToChooseUnfilteredColumnScan", 0);
assertSetParameterFails("internalQueryMaxNumberOfFieldsToChooseUnfilteredColumnScan", -1);
diff --git a/jstests/noPassthrough/sbe_plan_cache_clear_on_param_change.js b/jstests/noPassthrough/sbe_plan_cache_clear_on_param_change.js
index 32f00e693c7..6f148307a98 100644
--- a/jstests/noPassthrough/sbe_plan_cache_clear_on_param_change.js
+++ b/jstests/noPassthrough/sbe_plan_cache_clear_on_param_change.js
@@ -35,7 +35,6 @@ const paramList = [
{name: "internalQueryCollectionMaxDataSizeBytesToChooseHashJoin", value: 100},
{name: "internalQueryCollectionMaxStorageSizeBytesToChooseHashJoin", value: 100},
{name: "internalQueryDisableLookupExecutionUsingHashJoin", value: true},
- {name: "internalQuerySlotBasedExecutionDisableLookupPushdown", value: true},
{name: "internalQueryMaxNumberOfFieldsToChooseUnfilteredColumnScan", value: 100},
{name: "internalQueryMaxNumberOfFieldsToChooseFilteredColumnScan", value: 100},
];
diff --git a/src/mongo/db/commands/run_aggregate.cpp b/src/mongo/db/commands/run_aggregate.cpp
index 71356f55cda..e21bcfbffdf 100644
--- a/src/mongo/db/commands/run_aggregate.cpp
+++ b/src/mongo/db/commands/run_aggregate.cpp
@@ -71,7 +71,6 @@
#include "mongo/db/query/plan_executor_factory.h"
#include "mongo/db/query/plan_summary_stats.h"
#include "mongo/db/query/query_feature_flags_gen.h"
-#include "mongo/db/query/query_knobs_gen.h"
#include "mongo/db/query/query_planner_common.h"
#include "mongo/db/read_concern.h"
#include "mongo/db/repl/oplog.h"
@@ -675,8 +674,7 @@ Status runAggregate(OperationContext* opCtx,
// Taking locks over multiple collections is not supported outside of $lookup pushdown.
if (serverGlobalParams.featureCompatibility.isVersionInitialized() &&
feature_flags::gFeatureFlagSBELookupPushdown.isEnabled(
- serverGlobalParams.featureCompatibility) &&
- !internalQuerySlotBasedExecutionDisableLookupPushdown.load()) {
+ serverGlobalParams.featureCompatibility)) {
secondaryExecNssList = liteParsedPipeline.getForeignExecutionNamespaces();
}
diff --git a/src/mongo/db/pipeline/pipeline_d.cpp b/src/mongo/db/pipeline/pipeline_d.cpp
index 03e1d0f77f5..e15dcf293f6 100644
--- a/src/mongo/db/pipeline/pipeline_d.cpp
+++ b/src/mongo/db/pipeline/pipeline_d.cpp
@@ -80,7 +80,6 @@
#include "mongo/db/query/plan_executor_factory.h"
#include "mongo/db/query/plan_summary_stats.h"
#include "mongo/db/query/query_feature_flags_gen.h"
-#include "mongo/db/query/query_knobs_gen.h"
#include "mongo/db/query/query_planner.h"
#include "mongo/db/query/sort_pattern.h"
#include "mongo/db/s/collection_sharding_state.h"
@@ -160,8 +159,7 @@ std::vector<std::unique_ptr<InnerPipelineStageInterface>> extractSbeCompatibleSt
!(serverGlobalParams.featureCompatibility.isVersionInitialized() &&
feature_flags::gFeatureFlagSBELookupPushdown.isEnabled(
serverGlobalParams.featureCompatibility)) ||
- internalQuerySlotBasedExecutionDisableLookupPushdown.load() || isMainCollectionSharded ||
- collections.isAnySecondaryNamespaceAViewOrSharded();
+ isMainCollectionSharded || collections.isAnySecondaryNamespaceAViewOrSharded();
for (auto itr = sources.begin(); itr != sources.end();) {
// $group pushdown logic.
diff --git a/src/mongo/db/pipeline/process_interface/common_mongod_process_interface.cpp b/src/mongo/db/pipeline/process_interface/common_mongod_process_interface.cpp
index 216c95de3d6..b4f98346cc9 100644
--- a/src/mongo/db/pipeline/process_interface/common_mongod_process_interface.cpp
+++ b/src/mongo/db/pipeline/process_interface/common_mongod_process_interface.cpp
@@ -56,7 +56,6 @@
#include "mongo/db/pipeline/pipeline_d.h"
#include "mongo/db/query/collection_index_usage_tracker_decoration.h"
#include "mongo/db/query/collection_query_info.h"
-#include "mongo/db/query/query_knobs_gen.h"
#include "mongo/db/query/sbe_plan_cache.h"
#include "mongo/db/repl/primary_only_service.h"
#include "mongo/db/s/sharding_state.h"
@@ -436,8 +435,7 @@ CommonMongodProcessInterface::attachCursorSourceToPipelineForLocalRead(Pipeline*
std::vector<NamespaceStringOrUUID> secondaryNamespaces = [&]() {
if (serverGlobalParams.featureCompatibility.isVersionInitialized() &&
feature_flags::gFeatureFlagSBELookupPushdown.isEnabled(
- serverGlobalParams.featureCompatibility) &&
- !internalQuerySlotBasedExecutionDisableLookupPushdown.load()) {
+ serverGlobalParams.featureCompatibility)) {
auto lpp = LiteParsedPipeline(expCtx->ns, pipeline->serializeToBson());
return lpp.getForeignExecutionNamespaces();
} else {
diff --git a/src/mongo/db/query/query_knobs.idl b/src/mongo/db/query/query_knobs.idl
index f6df19ee07b..3a759caf0a6 100644
--- a/src/mongo/db/query/query_knobs.idl
+++ b/src/mongo/db/query/query_knobs.idl
@@ -637,13 +637,6 @@ server_parameters:
validator:
gt: 0
- internalQuerySlotBasedExecutionDisableLookupPushdown:
- description: "If true, the system will not push down $lookup to the SBE execution engine."
- set_at: [ startup, runtime ]
- cpp_varname: "internalQuerySlotBasedExecutionDisableLookupPushdown"
- cpp_vartype: AtomicWord<bool>
- default: false
-
internalQueryForceClassicEngine:
description: "If true, the system will use the classic execution engine for all queries,
otherwise eligible queries will execute using the SBE execution engine."