Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Currently, If the case-when expression has two branches which return string literal, redundant white spaces will be appended to the short string literal. For example, for the sql: case 1 when 1 then 'a' when 2 then 'bcd' end, the return value will be 'a ' of CHAR(3) instead of 'a'.
Although, this follows the behavior in strict SQL standard mode(SQL:2003). We should get the pragmatic return type in a real scenario without blank-padded.
Happily, this problem has been fixed by CALCITE-2321, we can upgrade calcite to the next release(1.17.0) and override RelDataTypeSystem in flink to configure the return type, i.e., making shouldConvertRaggedUnionTypesToVarying() return true.
Attachments
Issue Links
- links to