summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/sort_key_generator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/exec/sort_key_generator.cpp')
-rw-r--r--src/mongo/db/exec/sort_key_generator.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mongo/db/exec/sort_key_generator.cpp b/src/mongo/db/exec/sort_key_generator.cpp
index 0d18dc37d7b..f8c81395b8a 100644
--- a/src/mongo/db/exec/sort_key_generator.cpp
+++ b/src/mongo/db/exec/sort_key_generator.cpp
@@ -68,16 +68,16 @@ PlanStage::StageState SortKeyGeneratorStage::doWork(WorkingSetID* out) {
if (stageState == PlanStage::ADVANCED) {
WorkingSetMember* member = _ws->get(*out);
- try {
- auto sortKey = _sortKeyGen.computeSortKey(*member);
-
- // Add the sort key to the WSM as metadata.
- member->metadata().setSortKey(std::move(sortKey), _sortKeyGen.isSingleElementKey());
- } catch (const DBException& computeSortKeyException) {
- *out = WorkingSetCommon::allocateStatusMember(_ws, computeSortKeyException.toStatus());
+ auto sortKey = _sortKeyGen.computeSortKey(*member);
+ if (!sortKey.isOK()) {
+ *out = WorkingSetCommon::allocateStatusMember(_ws, sortKey.getStatus());
return PlanStage::FAILURE;
}
+ // Add the sort key to the WSM as metadata.
+ member->metadata().setSortKey(std::move(sortKey.getValue()),
+ _sortKeyGen.isSingleElementKey());
+
return PlanStage::ADVANCED;
}