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)