Hailin Wang created CALCITE-5214:
------------------------------------

             Summary: Implicit type conversion fails in union sql
                 Key: CALCITE-5214
                 URL: https://issues.apache.org/jira/browse/CALCITE-5214
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.30.0
            Reporter: Hailin Wang


 

The following test:
{code:java}
// 
org.apache.calcite.test.SqlToRelConverterTest#testUnionNullableImplicitTypeCoercion
@Test void testUnionNullableImplicitTypeCoercion() {
  final String sql =
      "select id from (values(1), (null)) t (id) union select 'varchar-id' as 
id";
  sql(sql).ok();
} {code}
Fails with the following exception:
{code:java}
Exception in thread "main" java.lang.AssertionError: Conversion to relational 
algebra failed to preserve datatypes:
validated type:
RecordType(VARCHAR NOT NULL ID) NOT NULL
converted type:
RecordType(VARCHAR EXPR$0) NOT NULL
rel:
LogicalUnion(all=[false])
  LogicalProject(EXPR$0=[CAST($0):VARCHAR])
    LogicalValues(tuples=[[{ 1 }, { null }]])
  LogicalValues(tuples=[[{ 'varchar-id' }]])    at 
org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:486)
    at 
org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:601)
    at org.apache.calcite.prepare.PlannerImpl.rel(PlannerImpl.java:259) {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to