Hequn Cheng created FLINK-9559:
----------------------------------

             Summary: The type of a union of CHAR columns of different lengths 
should be VARCHAR
                 Key: FLINK-9559
                 URL: https://issues.apache.org/jira/browse/FLINK-9559
             Project: Flink
          Issue Type: Improvement
          Components: Table API & SQL
            Reporter: Hequn Cheng
            Assignee: Hequn Cheng


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|https://issues.apache.org/jira/browse/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.





--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to