|
Currently, SBE builder in sbe_stage_builder_filter.cpp uses stack to isolate generation of SBE sub-trees.
SBE builder in sbe_stage_builder_expression.cpp uses stacks for each type of expressions which require sub-tree generation (for instance, there is a stack for logical expressions). We could unify these stacks into one abstraction like it is done in sbe_stage_builder_filter.cpp.
We should also research if it is possible to unify stacks from sbe_stage_builder_expression.cpp and sbe_stage_builder_filter.cpp into one abstraction to use in both places.
Also it looks like we would be able to extract logical expressions generation code from both builders into common code after this refactoring is performed. We should explore this possibility too.
|