Description
Most of time Spark SQL will evaluate expressions with codegen. However codegen is a complex technology, and we have already fixed a lot of bugs for it, and there will be more. To make Spark SQL more stable, we should have a fallback for evaluation when codegen fails, and this requires all expressions support interpreted evaluation. Currently the encoder related expressions are codegen only, we should fix them.