[ https://issues.apache.org/jira/browse/FLINK-17948?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17124647#comment-17124647 ]
Leonard Xu edited comment on FLINK-17948 at 6/3/20, 6:40 AM: ------------------------------------------------------------- The precision lost happened in Sql client rather than JDBC connector, JDBC connector works fine. We used deprecated Schema#toRowType method to obtain a [serializer|https://github.com/apache/flink/blob/master/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/gateway/local/result/MaterializedCollectBatchResult.java#L65)] which ignored the precision information. I think this could be an improvement or bug fix for sql-client. CC: [~TsReaper] [~godfreyhe] was (Author: leonard xu): The precision lost happened in Sql client rather JDBC connector, JDBC connector works fine. We used deprecated Schema#toRowType method to obtain a [serializer|https://github.com/apache/flink/blob/master/flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/gateway/local/result/MaterializedCollectBatchResult.java#L65)] which ignored the precision information. I think this could be an improvement or bug fix for sql-client. CC: [~TsReaper] [~godfreyhe] > Sql client lost precision for Timestamp and Decimal Data type > ------------------------------------------------------------- > > Key: FLINK-17948 > URL: https://issues.apache.org/jira/browse/FLINK-17948 > Project: Flink > Issue Type: Bug > Components: Table SQL / Client > Affects Versions: 1.11.0 > Environment: mysql: > image: mysql:8.0 > volumes: > - ./mysql/mktable.sql:/docker-entrypoint-initdb.d/mktable.sql > environment: > MYSQL_ROOT_PASSWORD: 123456 > ports: > - "3306:3306" > Reporter: Shengkai Fang > Priority: Major > Fix For: 1.11.0 > > Attachments: image-2020-05-26-22-56-43-835.png, > image-2020-05-26-22-58-02-326.png > > > My job is following: > > {code:java} > CREATE TABLE currency ( > currency_id BIGINT, > currency_name STRING, > rate DOUBLE, > currency_timestamp TIMESTAMP, > country STRING, > precise_timestamp TIMESTAMP(6), > precise_time TIME(6), > gdp DECIMAL(10, 6) > ) WITH ( > 'connector' = 'jdbc', > 'url' = 'jdbc:mysql://localhost:3306/flink', > 'username' = 'root', > 'password' = '123456', > 'table-name' = 'currency', > 'driver' = 'com.mysql.jdbc.Driver', > 'lookup.cache.max-rows' = '500', > 'lookup.cache.ttl' = '10s', > 'lookup.max-retries' = '3') > {code} > When select * from currency, the precision of results are not as same as > expected. The precision of field precise_timestamp is 3 not 6, and the > field gdp has more digit as expected. > > !image-2020-05-26-22-56-43-835.png! > The data in mysql is following: > !image-2020-05-26-22-58-02-326.png! -- This message was sent by Atlassian Jira (v8.3.4#803005)