[ 
https://issues.apache.org/jira/browse/FLINK-11242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16739269#comment-16739269
 ] 

Fabian Hueske commented on FLINK-11242:
---------------------------------------

Hi,

SQL's three-value logic (true, false, null) is not always easy to reason about.
However, I not very comfortable to override it with our own semantics. It's 
true that the Table API is not SQL, but both are facing the same issues with 
respect to null. So, I'd be in favor of following SQL rather than defining our 
own semantics (which might result in even stranger results or inconsistencies).

Best, Fabian

> 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 API & SQL
>    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.3#76005)

Reply via email to