Flink sql tinyint类型使用in 报错

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

Flink sql tinyint类型使用in 报错

丁浩浩
我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候 flink sql不会自动转换类型吗?

[ERROR] Could not execute SQL statement. Reason:
org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No applicable constructor/method found for actual parameters "int"; candidates are: "org.apache.flink.table.runtime.util.collections.ByteHashSet()
Reply | Threaded
Open this post in threaded view
|

Re:Flink sql tinyint类型使用in 报错

hailongwang
Hi,


 从你的报错来看,是 in 不支持隐式 CAST。
你要么可以把 type 定义成 INT,要不把后面的值 CAST 成  TINYINT。


Best,
Hailong Wang

在 2020-11-10 10:41:47,"丁浩浩" <[hidden email]> 写道:
>我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候 flink sql不会自动转换类型吗?
>
>[ERROR] Could not execute SQL statement. Reason:
>org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No applicable constructor/method found for actual parameters "int"; candidates are: "org.apache.flink.table.runtime.util.collections.ByteHashSet()
Reply | Threaded
Open this post in threaded view
|

Re: Flink sql tinyint类型使用in 报错

Jark
Administrator
是的。Flink 目前还不支持隐式类型转换。

Best,
Jark

On Tue, 10 Nov 2020 at 14:28, hailongwang <[hidden email]> wrote:

> Hi,
>
>
>  从你的报错来看,是 in 不支持隐式 CAST。
> 你要么可以把 type 定义成 INT,要不把后面的值 CAST 成  TINYINT。
>
>
> Best,
> Hailong Wang
>
> 在 2020-11-10 10:41:47,"丁浩浩" <[hidden email]> 写道:
> >我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type
> in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候 flink
> sql不会自动转换类型吗?
> >
> >[ERROR] Could not execute SQL statement. Reason:
> >org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No
> applicable constructor/method found for actual parameters "int"; candidates
> are: "org.apache.flink.table.runtime.util.collections.ByteHashSet()
>
Reply | Threaded
Open this post in threaded view
|

Re: Flink sql tinyint类型使用in 报错

丁浩浩
请问有没有计划加入隐式类型自动转化呢

> 在 2020年11月10日,下午2:35,Jark Wu <[hidden email]> 写道:
>
> 是的。Flink 目前还不支持隐式类型转换。
>
> Best,
> Jark
>
> On Tue, 10 Nov 2020 at 14:28, hailongwang <[hidden email]> wrote:
>
>> Hi,
>>
>>
>> 从你的报错来看,是 in 不支持隐式 CAST。
>> 你要么可以把 type 定义成 INT,要不把后面的值 CAST 成  TINYINT。
>>
>>
>> Best,
>> Hailong Wang
>>
>> 在 2020-11-10 10:41:47,"丁浩浩" <[hidden email]> 写道:
>>> 我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type
>> in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候 flink
>> sql不会自动转换类型吗?
>>>
>>> [ERROR] Could not execute SQL statement. Reason:
>>> org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No
>> applicable constructor/method found for actual parameters "int"; candidates
>> are: "org.apache.flink.table.runtime.util.collections.ByteHashSet()
>>


Reply | Threaded
Open this post in threaded view
|

Re: Flink sql tinyint类型使用in 报错

Danny Chan-2
暂时还没有 你们是什么场景需要用到隐式类型

丁浩浩 <[hidden email]> 于2020年11月10日周二 下午2:45写道:

> 请问有没有计划加入隐式类型自动转化呢
>
> > 在 2020年11月10日,下午2:35,Jark Wu <[hidden email]> 写道:
> >
> > 是的。Flink 目前还不支持隐式类型转换。
> >
> > Best,
> > Jark
> >
> > On Tue, 10 Nov 2020 at 14:28, hailongwang <[hidden email]> wrote:
> >
> >> Hi,
> >>
> >>
> >> 从你的报错来看,是 in 不支持隐式 CAST。
> >> 你要么可以把 type 定义成 INT,要不把后面的值 CAST 成  TINYINT。
> >>
> >>
> >> Best,
> >> Hailong Wang
> >>
> >> 在 2020-11-10 10:41:47,"丁浩浩" <[hidden email]> 写道:
> >>> 我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type
> >> in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候 flink
> >> sql不会自动转换类型吗?
> >>>
> >>> [ERROR] Could not execute SQL statement. Reason:
> >>> org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No
> >> applicable constructor/method found for actual parameters "int";
> candidates
> >> are: "org.apache.flink.table.runtime.util.collections.ByteHashSet()
> >>
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Flink sql tinyint类型使用in 报错

丁浩浩
就比如我要用flink cdc 接入mysql表,一般都是直接将mysql表的DDL稍加修改然后在flink sql中创建,一般都不会考虑到
类型转换的问题就直接沿用mysql中的类型,当然sql也是一样的。同样的sql在满足语法正确性的情况下,mysql中能跑,而flinksql中无法跑,
当然可以通过显示类型转化来完成,但是能提供自动转化会更好的提供易用性。

> 在 2020年11月10日,下午2:51,Danny Chan <[hidden email]> 写道:
>
> 暂时还没有 你们是什么场景需要用到隐式类型
>
> 丁浩浩 <[hidden email]> 于2020年11月10日周二 下午2:45写道:
>
>> 请问有没有计划加入隐式类型自动转化呢
>>
>>> 在 2020年11月10日,下午2:35,Jark Wu <[hidden email]> 写道:
>>>
>>> 是的。Flink 目前还不支持隐式类型转换。
>>>
>>> Best,
>>> Jark
>>>
>>> On Tue, 10 Nov 2020 at 14:28, hailongwang <[hidden email]> wrote:
>>>
>>>> Hi,
>>>>
>>>>
>>>> 从你的报错来看,是 in 不支持隐式 CAST。
>>>> 你要么可以把 type 定义成 INT,要不把后面的值 CAST 成  TINYINT。
>>>>
>>>>
>>>> Best,
>>>> Hailong Wang
>>>>
>>>> 在 2020-11-10 10:41:47,"丁浩浩" <[hidden email]> 写道:
>>>>> 我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type
>>>> in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候 flink
>>>> sql不会自动转换类型吗?
>>>>>
>>>>> [ERROR] Could not execute SQL statement. Reason:
>>>>> org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No
>>>> applicable constructor/method found for actual parameters "int";
>> candidates
>>>> are: "org.apache.flink.table.runtime.util.collections.ByteHashSet()
>>>>
>>
>>
>>


Reply | Threaded
Open this post in threaded view
|

Re: Flink sql tinyint类型使用in 报错

Danny Chan-2
好的 了解

丁浩浩 <[hidden email]> 于2020年11月10日周二 下午3:19写道:

> 就比如我要用flink cdc 接入mysql表,一般都是直接将mysql表的DDL稍加修改然后在flink sql中创建,一般都不会考虑到
> 类型转换的问题就直接沿用mysql中的类型,当然sql也是一样的。同样的sql在满足语法正确性的情况下,mysql中能跑,而flinksql中无法跑,
> 当然可以通过显示类型转化来完成,但是能提供自动转化会更好的提供易用性。
>
> > 在 2020年11月10日,下午2:51,Danny Chan <[hidden email]> 写道:
> >
> > 暂时还没有 你们是什么场景需要用到隐式类型
> >
> > 丁浩浩 <[hidden email]> 于2020年11月10日周二 下午2:45写道:
> >
> >> 请问有没有计划加入隐式类型自动转化呢
> >>
> >>> 在 2020年11月10日,下午2:35,Jark Wu <[hidden email]> 写道:
> >>>
> >>> 是的。Flink 目前还不支持隐式类型转换。
> >>>
> >>> Best,
> >>> Jark
> >>>
> >>> On Tue, 10 Nov 2020 at 14:28, hailongwang <[hidden email]> wrote:
> >>>
> >>>> Hi,
> >>>>
> >>>>
> >>>> 从你的报错来看,是 in 不支持隐式 CAST。
> >>>> 你要么可以把 type 定义成 INT,要不把后面的值 CAST 成  TINYINT。
> >>>>
> >>>>
> >>>> Best,
> >>>> Hailong Wang
> >>>>
> >>>> 在 2020-11-10 10:41:47,"丁浩浩" <[hidden email]> 写道:
> >>>>> 我使用flink sql cdc取连接 mysql表的时候,当我的mysql表type这个字段类型是tinyint类型时 使用type
> >>>> in(1,2,3,4,5)会报以下的错误,只有当我把字段类型改成int的时候才能使用in,这是符合预期的吗,当字段类型不匹配的时候
> flink
> >>>> sql不会自动转换类型吗?
> >>>>>
> >>>>> [ERROR] Could not execute SQL statement. Reason:
> >>>>> org.codehaus.commons.compiler.CompileException: Line 6, Column 88: No
> >>>> applicable constructor/method found for actual parameters "int";
> >> candidates
> >>>> are: "org.apache.flink.table.runtime.util.collections.ByteHashSet()
> >>>>
> >>
> >>
> >>
>
>
>