[
https://issues.apache.org/jira/browse/FLINK-20170?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jark Wu closed FLINK-20170.
---------------------------
Fix Version/s: 1.12.0
Resolution: Fixed
Fixed in master (1.12.0): 8baa71be304110bb23e71ca1e2e44bd5bce0c8c4
> json deserialize decimal loses precision
> ----------------------------------------
>
> Key: FLINK-20170
> URL: https://issues.apache.org/jira/browse/FLINK-20170
> Project: Flink
> Issue Type: Improvement
> Components: Formats (JSON, Avro, Parquet, ORC, SequenceFile), Table
> SQL / API
> Reporter: Mulan Wong
> Assignee: CaoZhen
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.12.0
>
> Attachments: image-2020-11-18-16-51-35-317.png
>
>
> {code:java}
> CREATE TABLE ods (
> id BIGINT,
> factor DECIMAL(38, 18)
> ) WITH (
> 'connector.type' = 'kafka',
> 'connector.version' = 'universal',
> 'connector.topic' = '_foo',
> 'connector.topic?' = '_foo',
> 'connector.properties.bootstrap.servers' = 'localhost:9092',
> 'connector.properties.group.id' = 'g',
> 'format.type' = 'json',
> 'update-mode' = 'append'
> );
> {code}
> this following is input data.
> {code:json}
> {"id": 1, "factor": 799.929496989092949698}
> {code}
> this following is output data and loses precision.
> {code:json}
> 1, 799.929496989093000000
> {code}
> This following code call readTree() method. This method make value loses
> precision.
> {code:java}
> public Row deserialize(byte[] message) throws IOException {
> try {
> final JsonNode root = objectMapper.readTree(message);
> return (Row) runtimeConverter.convert(objectMapper,
> root);
> } catch (Throwable t) {
> throw new IOException("Failed to deserialize JSON
> object.", t);
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)