lixu created FLINK-23860:
----------------------------

             Summary: Conversion to relational algebra failed to preserve 
datatypes
                 Key: FLINK-23860
                 URL: https://issues.apache.org/jira/browse/FLINK-23860
             Project: Flink
          Issue Type: Bug
          Components: Table SQL / Planner
    Affects Versions: 1.13.2, 1.13.1
            Reporter: lixu
             Fix For: 1.14.0, 1.13.3


{code:java}
//代码占位符
StreamExecutionEnvironment streamExecutionEnvironment = 
StreamExecutionEnvironment.getExecutionEnvironment();
StreamTableEnvironment tableEnvironment = 
StreamTableEnvironment.create(streamExecutionEnvironment);

tableEnvironment.executeSql("CREATE TABLE datagen (\n" +
        " f_sequence INT,\n" +
        " f_random INT,\n" +
        " f_random_str STRING,\n" +
        " ts AS localtimestamp,\n" +
        " WATERMARK FOR ts AS ts\n" +
        ") WITH (\n" +
        " 'connector' = 'datagen',\n" +
        " 'rows-per-second'='5',\n" +
        " 'fields.f_sequence.kind'='sequence',\n" +
        " 'fields.f_sequence.start'='1',\n" +
        " 'fields.f_sequence.end'='1000',\n" +
        " 'fields.f_random.min'='1',\n" +
        " 'fields.f_random.max'='1000',\n" +
        " 'fields.f_random_str.length'='10'\n" +
        ")");

Table table = tableEnvironment.sqlQuery("select row(f_sequence, f_random) as c 
from datagen");

Table table1 = tableEnvironment.sqlQuery("select * from " + table);

table1.execute().print();
{code}
{code:java}
// exception
Exception in thread "main" java.lang.AssertionError: Conversion to relational 
algebra failed to preserve datatypes:Exception in thread "main" 
java.lang.AssertionError: Conversion to relational algebra failed to preserve 
datatypes:validated type:RecordType(RecordType:peek_no_expand(INTEGER EXPR$0, 
INTEGER EXPR$1) NOT NULL c) NOT NULLconverted 
type:RecordType(RecordType(INTEGER EXPR$0, INTEGER EXPR$1) NOT NULL c) NOT 
NULLrel:LogicalProject(c=[ROW($0, $1)])  LogicalWatermarkAssigner(rowtime=[ts], 
watermark=[$3])    LogicalProject(f_sequence=[$0], f_random=[$1], 
f_random_str=[$2], ts=[LOCALTIMESTAMP])      
LogicalTableScan(table=[[default_catalog, default_database, datagen]]) at 
org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:467)
 at 
org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:582)
 at 
org.apache.flink.table.planner.calcite.FlinkPlannerImpl.org$apache$flink$table$planner$calcite$FlinkPlannerImpl$$rel(FlinkPlannerImpl.scala:169)
 at 
org.apache.flink.table.planner.calcite.FlinkPlannerImpl.rel(FlinkPlannerImpl.scala:161)
 at 
org.apache.flink.table.planner.operations.SqlToOperationConverter.toQueryOperation(SqlToOperationConverter.java:989)
 at 
org.apache.flink.table.planner.operations.SqlToOperationConverter.convertSqlQuery(SqlToOperationConverter.java:958)
 at 
org.apache.flink.table.planner.operations.SqlToOperationConverter.convert(SqlToOperationConverter.java:283)
 at 
org.apache.flink.table.planner.delegation.ParserImpl.parse(ParserImpl.java:101) 
at 
org.apache.flink.table.api.internal.TableEnvironmentImpl.sqlQuery(TableEnvironmentImpl.java:704)
{code}



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

Reply via email to