-
Type:
Improvement
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
Fully Compatible
-
None
-
3
-
None
-
None
-
None
-
None
-
None
-
None
Currently the block processing (BP) and scalar (aka "normal") flows in the SBE $group stage builder are shared, which makes them more complex and difficult to understand than they need to be and also strongly ties the data structures used by block and scalar to be the same where they overlap.
This ticket is to refactor so the two flows are separated. The resulting separation will be able to eliminate quite a bit of code as well, because it will no longer need to deal with "backing out" partial progress of block stage building, which can be abandoned at several different points when something BP does not support is encountered, not all of which can be checked for up front.
The separation supports the rest of SPM-4128, which is targeted only at the scalar flow, by preventing it from needing to alter any code related to BP.