这个方法有效,多谢
在 2023-03-22 17:11:19,"Jane Chan" <qingyue....@gmail.com> 写道: >Hi, > >如回复所述, 如果不想切换版本, 在 1.15 上可以尝试手动 cast 'abc' 字段为 varchar 来绕过这个问题 >map ['msg_code','0', 'msg_reason', cast('abc' as string)] > >如果不想修改 SQL, 目前只能手动编译出 release-1.17 分支, 编译方法参考 [1] > >[1] >https://nightlies.apache.org/flink/flink-docs-master/docs/flinkdev/building/ > >祝好! >Jane > >On Wed, Mar 22, 2023 at 6:04 PM Jeff <zilong0...@126.com> wrote: > >> 通过读calcite1.27.0相关源码发现它已经修复了,但我使用的是flink 1.15无法直接使用1.27.0,所以只能使用本地编译的版本么? >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> 在 2023-03-22 10:41:42,"Shuo Cheng" <njucs...@gmail.com> 写道: >> >Hi, >> > >> >如果你知道问题出现在哪儿, 可以自己提个 PR 哦. >> > >> >Sincerely, >> >Shuo >> > >> >On Wed, Mar 22, 2023 at 11:23 AM Jeff <zilong0...@126.com> wrote: >> > >> >> 复制执行我提供的两个sql就一定会复现! >> >> 不管哪个flink版本一定都会有这个问题,因为它们都是使用calcite 1.26.0。 >> >> 这个问题是这个版本calcite引起的。 >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> 在 2023-03-22 09:28:17,"Jeff" <zilong0...@126.com> 写道: >> >> >bug地址: >> >> >https://issues.apache.org/jira/browse/FLINK-31375?filter=-2 >> >> > >> >> > >> >> >bug详细内容: >> >> >the values of map<string,string> are truncated by the CASE WHEN >> function. >> >> >// sql >> >> >create table test (a map<varchar, string>) with ('connector'='print'); >> >> >insert into test select * from (values(case when true then >> >> map['test','123456789'] else map ['msg_code','0', 'msg_reason', 'abc'] >> >> end)); >> >> > >> >> >the result: >> >> > >> >> >+I[{test=123}] >> >> > >> >> >We hope the value of result is '123456789', but I get '123', the length >> >> is limited by 'abc'. >> >> >>