[ https://issues.apache.org/jira/browse/FLINK-30452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17652157#comment-17652157 ]
Jing Zhang edited comment on FLINK-30452 at 12/27/22 7:09 AM: -------------------------------------------------------------- Fixed in master: 207975b416c324c634f0620e049669afea8cb8db was (Author: qingru zhang): Fix in master: 207975b416c324c634f0620e049669afea8cb8db > Wrong argument type of null literal is used when call Hive's function > --------------------------------------------------------------------- > > Key: FLINK-30452 > URL: https://issues.apache.org/jira/browse/FLINK-30452 > Project: Flink > Issue Type: Sub-task > Components: Connectors / Hive > Reporter: luoyuxia > Priority: Major > Labels: pull-request-available > Fix For: 1.17.0 > > > While calling Hive function, if the argument is void type, it will be > [considered as string > type|[https://github.com/apache/flink/blob/2e5cac1f31aa571276df20e24889994672692a89/flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/functions/hive/conversion/HiveInspectors.java#L553]] > , which may bring wrong type inference and thus may well cause other > problems. > > For example, > {code:java} > timestamp(if(a = 0, null, a)) > {code} > the argument for function `if` is `null` and `a`, null is void type, `a` is > bigint type represents a timestamp, so the inferred return type should be > bigint for the `if` function will ignore void type and just consider the > other argument type. But we consider the void type as string type, the > return type inferred will be string according to the `if` function inference > logic. > And then when we try to converted the value returned by `if(a = 0, null, a)` > to timestamp, the unexpected behavior will happen: > Since we infer the returned value of `if(a = 0, null, a)` as string, so > `if(a = 0, null, a)` will return some thing like "1671058803926",but > cast ("1671058803926" as timestamp) will return null. > > -- This message was sent by Atlassian Jira (v8.20.10#820010)