You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Ruben Q L (Jira)" <ji...@apache.org> on 2020/09/15 09:19:00 UTC

[jira] [Updated] (CALCITE-4258) SqlToRelConverter: SELECT 1 IS [NOT] DISTINCT FROM NULL fails with AssertionError

     [ https://issues.apache.org/jira/browse/CALCITE-4258?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ruben Q L updated CALCITE-4258:
-------------------------------
    Description: 
Problem can be reproduced with the following tests (in core\src\test\resources\sql\misc.iq):
{code}
# [CALCITE-4258]
SELECT 1 IS DISTINCT FROM NULL;
+--------+
| EXPR$0 |
+--------+
|  true  |
+--------+
(1 row)

!ok

# [CALCITE-4258]
SELECT 1 IS NOT DISTINCT FROM NULL;
+--------+
| EXPR$0 |
+--------+
| false  |
+--------+
(1 row)

!ok
{code}

These tests fail with:
{code}
> java.lang.AssertionError: Conversion to relational algebra failed to preserve datatypes:
> validated type:
> RecordType(BOOLEAN NOT NULL EXPR$0) NOT NULL
> converted type:
> RecordType(BOOLEAN EXPR$0) NOT NULL
> rel:
> LogicalProject(EXPR$0=[null:BOOLEAN])
>   LogicalValues(tuples=[[{ 0 }]])
44a47,109
> 	at org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:466)
> 	at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:581)
> 	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:242)
> 	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:208)
...
{code}

  was:
Problem can be reproduced with the following tests (in core\src\test\resources\sql\misc.iq):
{code}
# 
SELECT 1 IS DISTINCT FROM NULL;
+--------+
| EXPR$0 |
+--------+
|  true  |
+--------+
(1 row)

!ok

# 
SELECT 1 IS NOT DISTINCT FROM NULL;
+--------+
| EXPR$0 |
+--------+
| false  |
+--------+
(1 row)

!ok
{code}

These tests fail with:
{code}
> java.lang.AssertionError: Conversion to relational algebra failed to preserve datatypes:
> validated type:
> RecordType(BOOLEAN NOT NULL EXPR$0) NOT NULL
> converted type:
> RecordType(BOOLEAN EXPR$0) NOT NULL
> rel:
> LogicalProject(EXPR$0=[null:BOOLEAN])
>   LogicalValues(tuples=[[{ 0 }]])
44a47,109
> 	at org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:466)
> 	at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:581)
> 	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:242)
> 	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:208)
...
{code}


> SqlToRelConverter: SELECT 1 IS [NOT] DISTINCT FROM NULL fails with AssertionError
> ---------------------------------------------------------------------------------
>
>                 Key: CALCITE-4258
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4258
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Ruben Q L
>            Priority: Major
>
> Problem can be reproduced with the following tests (in core\src\test\resources\sql\misc.iq):
> {code}
> # [CALCITE-4258]
> SELECT 1 IS DISTINCT FROM NULL;
> +--------+
> | EXPR$0 |
> +--------+
> |  true  |
> +--------+
> (1 row)
> !ok
> # [CALCITE-4258]
> SELECT 1 IS NOT DISTINCT FROM NULL;
> +--------+
> | EXPR$0 |
> +--------+
> | false  |
> +--------+
> (1 row)
> !ok
> {code}
> These tests fail with:
> {code}
> > java.lang.AssertionError: Conversion to relational algebra failed to preserve datatypes:
> > validated type:
> > RecordType(BOOLEAN NOT NULL EXPR$0) NOT NULL
> > converted type:
> > RecordType(BOOLEAN EXPR$0) NOT NULL
> > rel:
> > LogicalProject(EXPR$0=[null:BOOLEAN])
> >   LogicalValues(tuples=[[{ 0 }]])
> 44a47,109
> > 	at org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:466)
> > 	at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:581)
> > 	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:242)
> > 	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:208)
> ...
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)