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