[ https://issues.apache.org/jira/browse/FLINK-11242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16908025#comment-16908025 ]
Jark Wu commented on FLINK-11242: --------------------------------- I agree with [~fhueske], the three-value logic is a widely known fundamental concept and supported in the known databases/systems. If we accept {{o_c_id === Null(Types.STRING)}}, all the condition syntax will be changed which will affect the join/exist/in operations, and it will make users confused why the result of join/exist/in is different when using Table API and SQL. So, I'd be in favor of following SQL. Shall we close this issue? > The predicate `'o_c_id === Null(Types.STRING)` not work in TableAPI > ------------------------------------------------------------------- > > Key: FLINK-11242 > URL: https://issues.apache.org/jira/browse/FLINK-11242 > Project: Flink > Issue Type: Bug > Components: Table SQL / API > Affects Versions: 1.8.0 > Reporter: sunjincheng > Assignee: Dian Fu > Priority: Major > > Schema: > {code:java} > Table(c_id:String, o_c_id:String){code} > Data: > {code:java} > c_001,c_001 > c_002,c_002 > c_003,null{code} > TableAPI: > {code:java} > val result = tab > .select('c_id, 'o_c_id) > .where('o_c_id === Null(Types.STRING)){code} > Result: > We expect `c_003, null`, but got empty. > BTW, we can got the correct result by follows TableAPI: > {code:java} > val result = tab > .select('c_id, 'o_c_id) > .where('o_c_id isNull){code} > > I think is better for we let `.where('o_c_id === Null(Types.STRING))` work > well. What do you think? -- This message was sent by Atlassian JIRA (v7.6.14#76016)