Flink SQL does not support rename after cast type

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Flink SQL does not support rename after cast type

徐涛
Hi All,
        I am working on a project based on Flink SQL, but found that I can`t rename column after casting, the code is as below:
        cast(json_type as INTEGER) as xxx
       
        And the following exception is reported:
        org.apache.calcite.runtime.CalciteContextException: From line 4, column 6 to line 11, column 38: Illegal mixing of types in CASE or COALESCE statement

        I want to know that does Flink do not support this function because I think it is a common case? Is there a way to accomplish this function?
        Thank a lot.

Best
Henry Xu
Reply | Threaded
Open this post in threaded view
|

Re: Flink SQL does not support rename after cast type

Hequn Cheng
Hi Henry,

Flink does support rename column after casting.

The exception is not caused by cast. It is caused by mixing of types, for example,  the query 
"CASE 1 WHEN 1 THEN true WHEN 2 THEN 'string' ELSE NULL END"
will throw the same exception since type of true and 'string' are not same.

Best, Hequn.

On Tue, Aug 14, 2018 at 12:51 PM, 徐涛 <[hidden email]> wrote:
Hi All,
        I am working on a project based on Flink SQL, but found that I can`t rename column after casting, the code is as below:
        cast(json_type as INTEGER) as xxx

        And the following exception is reported:
        org.apache.calcite.runtime.CalciteContextException: From line 4, column 6 to line 11, column 38: Illegal mixing of types in CASE or COALESCE statement

        I want to know that does Flink do not support this function because I think it is a common case? Is there a way to accomplish this function?
        Thank a lot.

Best
Henry Xu

Reply | Threaded
Open this post in threaded view
|

Re: Flink SQL does not support rename after cast type

徐涛
Hi Hequn,
Thanks a lot for your anwswer! The question is clear now.

Best
Henry

在 2018年8月14日,下午1:24,Hequn Cheng <[hidden email]> 写道:

Hi Henry,

Flink does support rename column after casting.

The exception is not caused by cast. It is caused by mixing of types, for example,  the query 
"CASE 1 WHEN 1 THEN true WHEN 2 THEN 'string' ELSE NULL END"
will throw the same exception since type of true and 'string' are not same.

Best, Hequn.

On Tue, Aug 14, 2018 at 12:51 PM, 徐涛 <[hidden email]> wrote:
Hi All,
        I am working on a project based on Flink SQL, but found that I can`t rename column after casting, the code is as below:
        cast(json_type as INTEGER) as xxx

        And the following exception is reported:
        org.apache.calcite.runtime.CalciteContextException: From line 4, column 6 to line 11, column 38: Illegal mixing of types in CASE or COALESCE statement

        I want to know that does Flink do not support this function because I think it is a common case? Is there a way to accomplish this function?
        Thank a lot.

Best
Henry Xu