[SERVER-79539] Support general block-based stages in stage builders Created: 31/Jul/23  Updated: 17/Nov/23  Resolved: 17/Nov/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 7.3.0-rc0

Type: Task Priority: Major - P3
Reporter: Ian Boros Assignee: Alberto Massari
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Query Execution
Backwards Compatibility: Fully Compatible
Participants:

 Description   

The first step before we can have a block-based $group stage, is that the stage builder has a protocol to let SlotBasedStageBuilder::buildGroup inform the SlotBasedStageBuilder::build method building its source stage (via PlanStageReqs) that such stage is allowed to return block-based slots in its PlanStageOutputs.
The block-producing stages (currently just SlotBasedStageBuilder::buildUnpackTsBucket) would not insert the BlockToRowStage, and delegate the insertion to the first buildXXX method that accepts blocks in input but cannot generate blocks in output (because the stage output is not a block, or because the parent stage didn't signal in the PlanStageReqs that it can handle blocks)



 Comments   
Comment by Githook User [ 17/Nov/23 ]

Author:

{'name': 'Alberto Massari', 'email': 'alberto.massari@mongodb.com', 'username': 'albymassari'}

Message: SERVER-79539 Stage builder supports delayed transition from block to scalar processing
Branch: master
https://github.com/mongodb/mongo/commit/4f50b110c62d578a908b96b22149453486de7e75

Generated at Thu Feb 08 06:41:14 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.