My question was about your test case. `case when true then 1.0 else '1' end` is basically a constant. Why you think using a string type is good at here? Also, if this expression is optimized by our constant folding rule, you are not testing the execution side. A case like `case when boolCol then 1.0 else '1'` may be a better one. 