diff options
Diffstat (limited to 'src/mongo/db/exec/sbe/abt/abt_lower.cpp')
-rw-r--r-- | src/mongo/db/exec/sbe/abt/abt_lower.cpp | 47 |
1 files changed, 12 insertions, 35 deletions
diff --git a/src/mongo/db/exec/sbe/abt/abt_lower.cpp b/src/mongo/db/exec/sbe/abt/abt_lower.cpp index f32fe8da661..a706d150d61 100644 --- a/src/mongo/db/exec/sbe/abt/abt_lower.cpp +++ b/src/mongo/db/exec/sbe/abt/abt_lower.cpp @@ -1008,45 +1008,22 @@ std::unique_ptr<sbe::PlanStage> SBENodeLowering::walk(const IndexScanNode& n, co const PlanNodeId planNodeId = _nodeToGroupPropsMap.at(&n)._planNodeId; auto projectForKeyStringBounds = sbe::makeS<sbe::LimitSkipStage>( sbe::makeS<sbe::CoScanStage>(planNodeId), 1, boost::none, planNodeId); - if (hasLowerBound) { - seekKeySlotLower = _slotIdGenerator.generate(); - correlatedSlotsForJoin.push_back(seekKeySlotLower.value()); - projectForKeyStringBounds = sbe::makeProjectStage(std::move(projectForKeyStringBounds), - planNodeId, - seekKeySlotLower.value(), - std::move(lowerBoundExpr)); - } - if (hasUpperBound) { - seekKeySlotUpper = _slotIdGenerator.generate(); - correlatedSlotsForJoin.push_back(seekKeySlotUpper.value()); - projectForKeyStringBounds = sbe::makeProjectStage(std::move(projectForKeyStringBounds), - planNodeId, - seekKeySlotUpper.value(), - std::move(upperBoundExpr)); - } // Unused. boost::optional<sbe::value::SlotId> resultSlot; - auto result = sbe::makeS<sbe::IndexScanStage>(nss.uuid().get(), - indexDefName, - !indexSpec.isReverseOrder(), - resultSlot, - ridSlot, - boost::none, - indexKeysToInclude, - vars, - seekKeySlotLower, - seekKeySlotUpper, - nullptr /*yieldPolicy*/, - planNodeId); - - return sbe::makeS<sbe::LoopJoinStage>(std::move(projectForKeyStringBounds), - std::move(result), - sbe::makeSV(), - std::move(correlatedSlotsForJoin), - nullptr, - planNodeId); + return sbe::makeS<sbe::IndexScanStage>(nss.uuid().get(), + indexDefName, + !indexSpec.isReverseOrder(), + resultSlot, + ridSlot, + boost::none, + indexKeysToInclude, + vars, + std::move(lowerBoundExpr), + std::move(upperBoundExpr), + nullptr /*yieldPolicy*/, + planNodeId); } std::unique_ptr<sbe::PlanStage> SBENodeLowering::walk(const SeekNode& n, |