Hi, all



flink1.12 Blink planner有人遇到过这样的问题么:



下面是简化的逻辑
DataStream<Row> ds = xxxx.map(xxxRichMapFunction);
Table table = tableEnv.fromDataStream(ds);
tableEnv.toAppendStream(table.select(xxx).keyBy(xxx), 
Row.class).addSink(xxxRichSinkFunction);


xxxRichMapFunction中对某个字段写了row.setField(index, java.sql.timestamp.valueOf(str)); 
即写入的值是一个 java.sql.timestamp类型的字段,且xxxRichMapFunction 中getProducedType() 
中对应的位置也是Types.SQL_TIMESTAMP。
但在xxxRichSinkFunction我读取该字段时,却变成了java.time.LocalDateTime类型,导致在JdbcUtils.setRecordToStatement中抛出了java.lang.ClassCastException


我用 Blink planner就会有这个问题,如果程序启动时用useOldPlanner()就不会有这个问题。


张健

回复