It has been observed in
SPARK-21603 that whole-stage codegen suffers performance degradtion, if generated functions are too long to be optimized by JIT.
We basically produce a single function to incorporate generated codes from all physical operators in whole-stage. Thus, it is possibly to grow the size of generated function over a threshold that we can't have JIT optimization for it anymore.
This ticket is trying to decouple the logic of consuming rows in physical operators to avoid a giant function processing rows.