summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/sort_pattern.cpp
diff options
context:
space:
mode:
authorLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-18 17:02:53 -0300
committerLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-18 17:02:53 -0300
commit959575a5ca598bf5f37fb5cebe7ed1d80d3d71f7 (patch)
treeacc8d60aedb12b70048e676e8a7349deb0010db8 /src/mongo/db/query/sort_pattern.cpp
parent76588293975fc059cf076779e4283e6ffaf8afff (diff)
New upstream version 6.0.20upstream
Diffstat (limited to 'src/mongo/db/query/sort_pattern.cpp')
-rw-r--r--src/mongo/db/query/sort_pattern.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/mongo/db/query/sort_pattern.cpp b/src/mongo/db/query/sort_pattern.cpp
index fcd3cd177e1..5a444cd31f2 100644
--- a/src/mongo/db/query/sort_pattern.cpp
+++ b/src/mongo/db/query/sort_pattern.cpp
@@ -112,13 +112,13 @@ QueryMetadataBitSet SortPattern::metadataDeps(QueryMetadataBitSet unavailableMet
return depsTracker.metadataDeps();
}
-Document SortPattern::serialize(SortKeySerialization serializationMode) const {
+Document SortPattern::serialize(SortKeySerialization serializationMode,
+ const SerializationOptions& options) const {
MutableDocument keyObj;
const size_t n = _sortPattern.size();
for (size_t i = 0; i < n; ++i) {
if (_sortPattern[i].fieldPath) {
- // Append a named integer based on whether the sort is ascending/descending.
- keyObj.setField(_sortPattern[i].fieldPath->fullPath(),
+ keyObj.setField(options.serializeFieldPath(*_sortPattern[i].fieldPath),
Value(_sortPattern[i].isAscending ? 1 : -1));
} else {
// Sorting by an expression, use a made up field name.
@@ -127,7 +127,12 @@ Document SortPattern::serialize(SortKeySerialization serializationMode) const {
case SortKeySerialization::kForExplain:
case SortKeySerialization::kForPipelineSerialization: {
const bool isExplain = (serializationMode == SortKeySerialization::kForExplain);
- keyObj[computedFieldName] = _sortPattern[i].expression->serialize(isExplain);
+ auto opts = SerializationOptions{};
+ if (isExplain) {
+ opts.verbosity =
+ boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner);
+ }
+ keyObj[computedFieldName] = _sortPattern[i].expression->serialize(opts);
break;
}
case SortKeySerialization::kForSortKeyMerging: {