You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Maksim Zhuravkov (Jira)" <ji...@apache.org> on 2023/04/18 15:47:00 UTC

[jira] [Created] (IGNITE-19307) Sql. Set operation: Conversion to relational algebra failed to preserve datatypes.

Maksim Zhuravkov created IGNITE-19307:
-----------------------------------------

             Summary: Sql. Set operation: Conversion to relational algebra failed to preserve datatypes.
                 Key: IGNITE-19307
                 URL: https://issues.apache.org/jira/browse/IGNITE-19307
             Project: Ignite
          Issue Type: Bug
          Components: sql
         Environment: The following query fails with "Conversion to relational algebra failed to preserve datatypes"  
{code:java}
@Test
public void test() {
   sql("CREATE TABLE tt (id integer primary key, test_key integer)");
   sql("INSERT INTO tt VALUES(1, 100)");
   assertQuery("SELECT test_key FROM tt UNION ALL SELECT '1000'").check();
}
{code}
Although the same expression with literal works as expected:
{code:java}
@Test
public void test2() {
   assertQuery("SELECT 100 UNION ALL SELECT '1000'").check();
}
{code}

Error:

{code:java}
java.lang.AssertionError: Conversion to relational algebra failed to preserve datatypes:
validated type:
RecordType(VARCHAR CHARACTER SET "UTF-8" NOT NULL TEST_KEY) NOT NULL
converted type:
RecordType(VARCHAR CHARACTER SET "UTF-8" EXPR$0) NOT NULL
rel:
LogicalUnion(all=[true])
  LogicalProject(EXPR$0=[CAST($1):VARCHAR CHARACTER SET "UTF-8"])
    IgniteLogicalTableScan(table=[[PUBLIC, TT]])
  LogicalValues(tuples=[[{ _UTF-8'1000' }]])
{code}


            Reporter: Maksim Zhuravkov
             Fix For: 3.0.0-beta2






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