[SERVER-85755] Block-enabled projection transitioning to scalar processing doesn't clean up the state Created: 25/Jan/24 Updated: 07/Feb/24 Resolved: 31/Jan/24 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 8.0.0-rc0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Alberto Massari | Assignee: | Alberto Massari |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||
| Assigned Teams: |
Query Execution
|
||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||
| Operating System: | ALL | ||||||||||||
| Steps To Reproduce: |
generates the plan
where makeBsonObj uses s7 instead of s10 |
||||||||||||
| Sprint: | QE 2024-02-05 | ||||||||||||
| Participants: | |||||||||||||
| Linked BF Score: | 155 | ||||||||||||
| Description |
|
In a $project that supports processing block values, we first associate a slot id to the projected path, then, if we have to transition to scalar processing, we allocate a new slot to hold the sequence of scalar values coming out of that block thanks to the TsBlockToRow stage. However, the slot id holding the block value is still kept in the "nodes" variable that is used when assembling the result object, ending up at runtime with a block value passed to a call to makeBsonObj. |
| Comments |
| Comment by Githook User [ 31/Jan/24 ] |
|
Author: {'name': 'Alberto Massari', 'email': 'alberto.massari@mongodb.com', 'username': 'albymassari'}Message: GitOrigin-RevId: 38ff16ea3179906f0ddeef0f2f02542c2a7d6c2e |
| Comment by Githook User [ 29/Jan/24 ] |
|
Author: {'name': 'Alberto Massari', 'email': 'alberto.massari@mongodb.com', 'username': 'albymassari'}Message: GitOrigin-RevId: b48a7e749f91b1a7860da96da2315fdc10a96736 |