The shouldRaggedFixedLengthValueUnionBeVariable() function in SqlTypeFactoryImpl always return false now. It is good to make it configurable since some system may need the function to return true to provide pragmatic behavior. For example, for the sql: case 1 when 1 then 'a' when 2 then 'bcd' end, we need the return value to be 'a' instead of 'a ' of CHAR(3).
I see one option to solve this issue: Add boolean shouldRaggedFixedLengthValueUnionBeVariable() in RelDataTypeSystem, so external system can override to configure the value.
Any suggestions are welcomed. Thanks a lot.