[ 
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)

Reply via email to