You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "duan xiong (Jira)" <ji...@apache.org> on 2021/09/02 12:39:00 UTC
[jira] [Updated] (CALCITE-4756) When subquery include NULL value,
Calcite should return the right result
[ https://issues.apache.org/jira/browse/CALCITE-4756?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
duan xiong updated CALCITE-4756:
--------------------------------
Description:
When I try to design some unit tests for CALCITE-4742. I found Calcite can't handle NULL very well in some subquery. For example:
{code:java}
select 1 in (null,1);
select 1 <> some(null);{code}
This SQL should return NULL、UNKNOWN、TRUE、FALSE. But throw NPE.
In 3-valued logic, as we know:
{code:java}
unknow and false => false
{code}
So the SQL:
{code:java}
select 1 = all(null, 2) should return false but is null.
{code}
{code:java}
select 1 = all(null, 2, 1) should return false but is true.
{code}
was:
When I try to design some unit tests for CALCITE-4742. I found Calcite can't handle NULL very well in some subquery. For example:
{code:java}
select 1 in (null,1);
select 1 <> some(null);{code}
This SQL should return NULL、UNKNOWN、TRUE、FALSE. But throw NPE.
> When subquery include NULL value, Calcite should return the right result
> ------------------------------------------------------------------------
>
> Key: CALCITE-4756
> URL: https://issues.apache.org/jira/browse/CALCITE-4756
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.27.0
> Reporter: duan xiong
> Assignee: duan xiong
> Priority: Major
>
> When I try to design some unit tests for CALCITE-4742. I found Calcite can't handle NULL very well in some subquery. For example:
> {code:java}
> select 1 in (null,1);
> select 1 <> some(null);{code}
> This SQL should return NULL、UNKNOWN、TRUE、FALSE. But throw NPE.
> In 3-valued logic, as we know:
> {code:java}
> unknow and false => false
> {code}
> So the SQL:
> {code:java}
> select 1 = all(null, 2) should return false but is null.
> {code}
> {code:java}
> select 1 = all(null, 2, 1) should return false but is true.
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)