You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Leonard Xu (Jira)" <ji...@apache.org> on 2020/06/03 06:41:00 UTC
[jira] [Comment Edited] (FLINK-17948) Sql client lost precision for
Timestamp and Decimal Data type
[ 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)