From ba397817bbf0caea085e1b7494afe5a867466d54 Mon Sep 17 00:00:00 2001 From: Kartal Kaan Bozdogan Date: Wed, 16 Apr 2025 15:33:53 +0200 Subject: [PATCH] explodeForSort: Consider partial explosions --- src/mongo/db/query/planner_analysis.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mongo/db/query/planner_analysis.cpp b/src/mongo/db/query/planner_analysis.cpp index d0c08e10c3adc..a557f9a59f2eb 100644 --- a/src/mongo/db/query/planner_analysis.cpp +++ b/src/mongo/db/query/planner_analysis.cpp @@ -1036,6 +1036,11 @@ bool QueryPlannerAnalysis::explodeForSort(const CanonicalQuery& query, if (!isOilExplodable(oil, iet)) { break; } + // We need not explode the fields in the desired sort order + auto elem = *kpIt; + if (elem.fieldNameStringData() == desiredSort.begin()->fieldNameStringData()) { + break; + } numScans *= oil.intervals.size(); kpIt.next(); ++boundsIdx;