[
https://issues.apache.org/jira/browse/CALCITE-6485?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17867466#comment-17867466
]
xiong duan commented on CALCITE-6485:
-------------------------------------
[~julianhyde], this issue occurs when an IN list containing null values has an
implicit coercion type converter.
Here are some tests:
{code:java}
!use post
select 1 in (null, 2, 3) as f0 from (values (true, true, true));
F0
null
!ok
select 1 in (null, 2, 3) as f0;
F0
null
!ok
select 1 in (null, cast('2' as varchar), cast('3' as varchar)) as f0 from
(values (true, true, true));
java.lang.AssertionError: Conversion to relational algebra failed to preserve
datatypes:
validated type:
RecordType(BOOLEAN NOT NULL F0) NOT NULL
converted type:
RecordType(BOOLEAN F0) NOT NULL
rel:
LogicalValues(tuples=[[{ null }]]) {code}
> Query with IN-list contains NULL throws Exception
> -------------------------------------------------
>
> Key: CALCITE-6485
> URL: https://issues.apache.org/jira/browse/CALCITE-6485
> Project: Calcite
> Issue Type: Improvement
> Reporter: xiong duan
> Assignee: xiong duan
> Priority: Major
>
> {code:java}
> @Test void testInOperation() {
> sql("select 1 in (null, '2', '3') as f0 from (values (true, true,
> true))").ok();
> }
> {code}
> {code:java}
> Conversion to relational algebra failed to preserve datatypes:
> validated type:
> RecordType(BOOLEAN NOT NULL F0) NOT NULL
> converted type:
> RecordType(BOOLEAN F0) NOT NULL
> rel:
> LogicalValues(tuples=[[{ null }]]) {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)