diff options
Diffstat (limited to 'src/mongo/db/exec/sort_key_generator.cpp')
-rw-r--r-- | src/mongo/db/exec/sort_key_generator.cpp | 14 |
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; } |